improvements supplier translations

This commit is contained in:
2013-01-10 20:56:30 +01:00
parent 4d0d1b7dd1
commit f6b28f84f0
7 changed files with 113 additions and 14 deletions
@@ -32,6 +32,10 @@
//= require qwaiter
//= require_directory .
//= require_self
var Qstorage = localStorage;
String.prototype.capitalize = function() {
return this.charAt(0).toUpperCase() + this.slice(1);
}
var path_mapping = {
user_root: '/user',
join_occupied_table: '/user/join_occupied_table',
@@ -49,3 +53,15 @@ function redirect_to(mapping, variables){
function currency(num) {
return Qwaiter.currency(num);
}
$(function(){
$locale = Qstorage.getItem('locale') || 'en';
if(Qstorage.getItem('message')){
var container = $('.alert-success');
var msg_finder = Qstorage.getItem('message');
if(msg_finder.indexOf('.') == -1) msg_finder = 'messages.'+msg_finder;
container.find('div').text(t(msg_finder));
container.show();
Qstorage.removeItem('message');
}
setTranslations();
});
@@ -0,0 +1,62 @@
var $translations = {
en: {
messages: <%= I18n.t('messages', locale: :en).to_json %>,
models: <%= I18n.t('activemodel.models', locale: :en).to_json %>,
attributes: <%= I18n.t('activemodel.attributes', locale: :en).to_json %>,
<%= I18n.t('supplier', locale: :en).to_json[1..-2] %>
},
nl: {
models: <%= I18n.t('activemodel.models', locale: :nl).to_json %>,
attributes: <%= I18n.t('activemodel.attributes', locale: :nl).to_json %>,
<%= I18n.t('supplier', locale: :nl).to_json[1..-2] %>
}
}
$transformation_mappings = {
downcase: 'toLowerCase',
upcase: 'toUpperCase'
}
function t(path, vars){
vars || (vars = {});
var result, m, translatable, isafety,replacable;
var parts = path.split('.');
var accessor = '$translations.'+$locale+'["' + parts.join('"]["')+ '"]';
try{
result = eval(accessor);
} catch(err){
result = parts[parts.length - 1].capitalize();
}
if(!result) return parts[parts.length - 1].capitalize();
$.each(vars, function(v, value){ result = result.replace('%{'+v+'}', value)});
isafety = 0;
while(result.indexOf('${') > -1){
m = result.match(/\${([\w\.]+(\|\w+)?)}/);
if(m[2]){
translatable = m[1].replace(m[2], '');
operation = $transformation_mappings[m[2].substr(1) || m[2].substr(1)];
}else{
translatable = m[1];
operation = null;
}
replacable = t(translatable);
if(operation) replacable = replacable[operation]();
result = result.replace(m[0], replacable);
if(isafety > 10) break;
isafety += 1;
}
return result;
}
function setLocale(locale){
Qstorage.setItem('locale', locale);
$locale = locale;
setTranslations();
}
function setTranslations(selector){
var list = $('#top-navigation-list');
list.find('.locale').show();
list.find('.locale-'+$locale).hide();
if(selector){
$(selector).find('[data-t]').each(function(){$(this).text(t($(this).data('t'), $(this).data('tAttributes')))})
}else{
$('[data-t]').each(function(){$(this).text(t($(this).data('t'),$(this).data('tAttributes')))})
}
}
+1
View File
@@ -77,6 +77,7 @@ class Section
w = width
h = height
n = tables.size
return unless w > 0 && h > 0 && n > 0
l = Math.sqrt((w*h).to_f/n)
epsilon = (10 ** -(Float::DIG - 1)).to_f
while (w/l).floor * (h/l).floor < n # find a fitting combination
+1 -1
View File
@@ -83,7 +83,7 @@ class Supplier
private
def add_section_on_create
@section = Section.create supplier: self, title: I18n.t('section.first_section_title')
@section = Section.create supplier: self, title: I18n.t('supplier.section.first_section_title')
end
end
@@ -1,5 +1,5 @@
- model_class = Section
.page-header= title t('section.manage_tables.title', section: Section.model_name.human.downcase, title: @section.title)
.page-header data-t='section.manage_tables.title' data-t-attributes=%|{"title":"#{@section.title}"}|
- content_for :row do
ul.nav.nav-tabs
- for section in @section.supplier.sections
@@ -62,8 +62,8 @@
.controls
input.input-mini#add-tables-number-end type=:number value=120
.modal-footer
button.btn data-dismiss="modal" aria-hidden=true Close
button.btn.btn-primary onclick="Qsupplier.add_tables_to_active_section()" Add
button.btn data-dismiss="modal" aria-hidden=true data-t='section.add_tables.modal.close_button'
button.btn.btn-primary onclick="Qsupplier.add_tables_to_active_section()" data-t='section.add_tables.modal.add_button'
#arrange-tables-modal.modal.hide.fade tabindex=-1 role=:dialog aria-labeledby='add-tables-modal-label' aria-hidden=true
button.close type=:button data-dismiss=:modal aria-hidden=true x
h3#arrange-tables-modal-label= t('supplier.section.arrange_tables.modal.title')
@@ -87,5 +87,5 @@
label for="arrange-tables-by-column-count"= t('supplier.section.arrange_tables.modal.by_column_count')
input.input-mini#arrange-tables-by-column-count type="text" value=0
.modal-footer
button.btn data-dismiss="modal" aria-hidden=true Close
button.btn.btn-primary onclick="Qsupplier.arrange_tables_of_active_section()" Add
button.btn data-dismiss="modal" aria-hidden=true data-t='section.arrange_tables.modal.close_button'
button.btn.btn-primary onclick="Qsupplier.arrange_tables_of_active_section()" data-t='section.arrange_tables.modal.arrange_button'
+16 -4
View File
@@ -110,15 +110,31 @@ en:
show:
title: Show %{list}
section:
first_section_title: Room
manage_tables:
title: "Manage tables for ${models.section|downcase}: %{title}"
tables_view: Tables view
add_tables:
button_label: Add tables
modal:
title: Add tables
body_header: ""
number_start: From number
number_end: Till number
close_button: Close
add_button: Add
arrange_tables:
button_label: Arrange tables
modal:
title: Arrange tables
body_header: ""
distributed: Distributed
by_row: By row
by_row_count: of
by_column: By column
by_column_count: of
close_button: Close
arrange_button: Distribute
user:
active_list:
@@ -148,10 +164,6 @@ en:
title: Authenticate Qwaiter
obtain: Authenticate
invalid_combination: The email password combination is incorrect
section:
first_section_title: Room
manage_tables:
title: "Manage tables for %{section}: %{title}"
general:
boolean:
boolean_yes: "Yes"
+12 -4
View File
@@ -94,6 +94,11 @@ nl:
title: Titel
width: Breedte
height: Lengte
supplier:
name: Naam
email: 'E-mail'
password: 'Wachtwoord'
password_confirmation: 'Bevestiging'
supplier:
menu:
active_lists: Actieve %{lists}
@@ -114,6 +119,9 @@ nl:
show:
title: "%{list} tonen"
section:
first_section_title: Ruimte
manage_tables:
title: "Tafels beheren voor ${models.section|downcase}: %{title}"
tables_view: Tafel overzicht
add_tables:
button_label: Voeg tafels toe
@@ -122,6 +130,8 @@ nl:
body_header: ""
number_start: Vanaf nummer
number_end: Tot nummer
close_button: Sluiten
add_button: Voeg toe
arrange_tables:
button_label: Positioneer tafels
modal:
@@ -132,6 +142,8 @@ nl:
by_row_count: van
by_column: Per kolom
by_column_count: van
close_button: Sluiten
arrange_button: Positioneer
user:
active_list:
@@ -161,10 +173,6 @@ nl:
title: Aanmelden bij Qwaiter
obtain: Aanmelden
invalid_combination: De inloggegevens zijn onjuist
section:
first_section_title: Ruimte
manage_tables:
title: "Tafels beheren voor %{section}: %{title}"
general:
boolean:
boolean_yes: "Ja"