Pull to refresh

Comments 11

Спасибо, полезная статейка.
Вот только не будет ли кучи кривых переводов…
UFO just landed and posted this here
Я не переводил ту статью, если бы переводил то поставил не топик а перевод, там написаны некоторые вещи не очень понятно, мне кажется что тут получилось более понятно.
Какой излишний формат перевода — постоянная тавтология с message. А автор статьи забыл о плюрализации рассказать (1 робот, 2 робота, 5 роботов…) или же её поддержки нет в Хроме o_O.
в связи с тем, что в разных языках свои правила образования множественного числа, в хроме нет для этого поддержки. Советуют использовать нейтральную форму для множественного числа. Например, вместо «11 file were moved» можно сказать «Files moved: 11»
Взято из документации: Chrome extensions i18n -> 2.6 Plural form
Какая-то странная отговорка. Все остальные нормальные библиотеки i18n просто имеют файлы локалей с описанием форматов даты и чисел и алгоритмом плюрализации.
Вот тут translate.sourceforge.net/wiki/l10n/pluralforms есть алгоритмы для всех языков для нахождения надписи.
А вот пример кода набросал за несколько минуток:

function plural(n, locale, msg){
    var formula = {};
    formula['en'] = '(n != 1) ? 1 : 0';
    formula['ru'] = '(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)';
    eval('el='+formula[locale]); 
    return n+msg[el];
}

text_ru = plural( 2, 'ru', [' Робот', ' Робота', ' Роботов'] );
text_en = plural( 2, 'en', [' Robot', ' Robots'] );

Эти алгоритмы должны быть в файлах локали в Хроме, а не в коде приложения.
Гугл этого не сделал, поэтому придется делать самим.
Sign up to leave a comment.

Articles

Change theme settings