URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 117141
[ Назад ]

Исходное сообщение
"Компания Mozilla опубликовала систему локализации Fluent 1.0"

Отправлено opennews , 17-Апр-19 23:14 
Представлен (https://hacks.mozilla.org/2019/04/fluent-1-0-a-localization-.../) первый стабильный выпуск  проекта Fluent 1.0 (https://projectfluent.org/), применяемого для локализации продуктов Mozilla. Версия 1.0 ознаменовала стабилизацию спецификаций и синтаксиса разметки. Наработки проекта распространяются (https://github.com/projectfluent/fluent) под лицензией Apache 2.0. Реализации Fluent подготовлены на языках Python (https://github.com/projectfluent/python-fluent), JavaScript (https://github.com/projectfluent/fluent.js) и Rust (https://github.com/projectfluent/fluent-rs). Для упрощения подготовки файлов в формате Fluent развиваются online-редактор (https://github.com/projectfluent/play) и плагин (https://github.com/projectfluent/fluent.vim) для Vim.


Предложенная система локализации предоставляет возможности для создания естественно выглядящих переводов элементов интерфейса, не загнанных в жёсткие рамки и не ограничивающиеся переводом 1 в 1 эталонных фраз. С одной стороны Fluent позволяет предельно просто реализовывать простейшие переводы, но с другой предоставляет гибкий инструментарий для перевода  сложных взаимодействий, учитывающих род, склонения множественных чисел, спряжения и другие языковые особенности.


Во Fluent допускается создание асинхронных переводов, в которых простая строка на английском языке может быть сопоставлена с достаточно сложным многовариантным переводом на другом языке (например,  "Вера добавила фотографию", "Вася добавил пять фотографий"). При этом синтаксис Fluent, определяющий переводы, остаётся достаточно легко читаем и воспринимаем.

   shared-photos =
       {$userName} {$photoCount ->
           [one] added a new photo
          *[other] added {$photoCount} new photos
       } to {$userGender ->
           [male] his stream
           [female] her stream
          *[other] their stream
       }.

Основным элементом перевода в Fluent является сообщение. Каждое сообщение связывается с идентификатором (например, "hello = Hello, world!"), который прикрепляется к коду приложений в месте своего применения. Сообщения могут быть как простыми текстовыми фразами, так и многострочными сценариями, учитывающими разные варианты грамматики и включающие условные выражения (https://projectfluent.org/fluent/guide/selectors.html) (селекторы), переменные (https://projectfluent.org/fluent/guide/variables.html), атрибуты (https://projectfluent.org/fluent/guide/attributes.html), термины (https://projectfluent.org/fluent/guide/terms.html) и функции (https://projectfluent.org/fluent/guide/functions.html) (форматирование чисел, преобразование дат и времени). Поддерживаются ссылки - одни сообщения могут включаться в состав других сообщений.


URL: https://hacks.mozilla.org/2019/04/fluent-1-0-a-localization-.../
Новость: https://www.opennet.me/opennews/art.shtml?num=50531


Содержание

Сообщения в этом обсуждении
"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено тот_же_анон_уже_без_мабилы , 17-Апр-19 23:14 
больше велосипедов богу велосипедов

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Борщдрайвен бигдата , 17-Апр-19 23:16 
Хороший продукт, нужный. Будет альтернатива gettext.

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 18-Апр-19 15:09 
Для веба сгодится, пожалуй, а для остального — не вижу смысла отказываться от gettext.

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Xasd5 , 17-Апр-19 23:28 
нашли на чём заморочиться

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено KonstantinB , 18-Апр-19 00:50 
Очень правильно нашли. На результаты типичного gettext-перевода в большинстве случаев без слез смотреть нельзя. Классический пример - окно с двумя кнопками "Отменить" (undo) и "Отменить" (cancel). :-)

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 18-Апр-19 07:26 
gettext поддерживает контексты, что позволяет переводить по разному в зависимости от ситуации.

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено анонимус , 18-Апр-19 07:46 
Можешь привести пример, когда "Отменить" (undo) и "Отменить" (cancel) могут вызвать путаницу?

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено кккк , 18-Апр-19 09:04 
>Можешь привести пример, когда "Отменить" (undo) и "Отменить" (cancel) могут вызвать путаницу?

undo это отменить последнюю операцию, cancel это отменить текущее действие. Если "текущее действие" undo, то очень даже будет путаница.


"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 18-Апр-19 09:22 
http://levfoto.ru/wp-content/uploads/2014/04/03.jpg

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено ffirefox , 18-Апр-19 12:13 
Одно это отменить, а другое - отклонить. Имеет смысл с толковым словарём переводить.

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 18-Апр-19 12:22 
В gitg реверт коммита выводит диалог с двумя отменами

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 18-Апр-19 15:11 
> На результаты типичного gettext-перевода в большинстве случаев без слез смотреть нельзя. Классический пример - окно с двумя кнопками "Отменить" (undo) и "Отменить" (cancel).

Если кто-то не осилил gettext, то он и этот fluent вряд ли осилит.


"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 19-Апр-19 02:42 
Более высокий входной порог я рассматриваю как преимущество. Отсеет совсем безнадёжных гуманитариев.

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 19-Апр-19 07:13 
Хорошо бы найти надежных гуманитариев, что бы подобрали лаконичные русские слова под Undo и Cancel

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним84701 , 19-Апр-19 12:04 
> Хорошо бы найти надежных гуманитариев, что бы подобрали лаконичные русские слова под Undo и Cancel

Достаточно было найти одного "неоткосившего"   🙄
"Отменить!" и "Отставить!" - лаконично и недвусмысленно.


"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 22-Апр-19 01:07 
Откатить / Вернуть и Отменить / Прервать. Конечно, не во все контексты подходит, и обратно их можно перевести как Roll back / Return и Cancel / Undo / Abort. Но хотя бы не два одинаковые слова.

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Michael Shigorin , 23-Апр-19 22:09 
"Отменить" и "Отставить"? :]

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 17-Апр-19 23:38 
А оно умеет в intltool-update?

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено KonstantinB , 18-Апр-19 00:55 
Нет, там концептуальных отличий слишком много.

https://github.com/projectfluent/fluent/wiki/Fluent-vs-gettext


"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 18-Апр-19 06:40 
И как же там синхронизировать переводы?

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 17-Апр-19 23:40 


# Simple things are simple.
hello-user = Привет, {$userName}!

# Complex things are possible.
shared-photos =
    {$userName} {$userGender ->
        [male] добавил
        [female] добавила
       *[other] добавили
    } {$photoCount ->
        [1] новую фотографию
        [2] {$photoCount} новые фотографии
        [3] {$photoCount} новые фотографии
        [4] {$photoCount} новые фотографии
       *[other] {$photoCount} новых фотографий
    } в свою ленту.

Ещё бы понять, как оно со сложными числительными вроде 21 и 25. И гендер только гендер или полноценные именные категории может. И как оно вообще для сложных случаяев в произвольных языках. Если может, то нужно.


"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено KonstantinB , 18-Апр-19 00:45 
Там все намного лучше. Оно поддерживает CLDR plural rules. В квадратных скобках можно указать имя категории: http://www.unicode.org/cldr/charts/30/supplemental/language_...

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено trolleybus , 18-Апр-19 10:49 
> например, селектор "few" охватывает значения 2~4, 22~24, 32~34

Даже тут написано, что может


"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено smit , 19-Апр-19 00:31 
[21] {$photoCount} новую фотографию
[22] {$photoCount} новые фотографии
[23] {$photoCount} новые фотографии
[24] {$photoCount} новые фотографии

[31] {$photoCount} новую фотографию
[32] {$photoCount} новые фотографии
[33] {$photoCount} новые фотографии
[34] {$photoCount} новые фотографии

[41] {$photoCount} новую фотографию
...


"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 19-Апр-19 02:43 
Это вариант для Хинди.

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 18-Апр-19 00:04 
Выглядит круто. Я думаю и всякие *1,*2-4,*5-9 можно будет без проблем вылавливать отдельно

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено MrClon , 18-Апр-19 10:56 
Оно там из коробки, если я правильно понял о чём ты. Смотри тред выше

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 18-Апр-19 16:37 
Он ещё, небось, не в курсе, что оно из коробки во всех сколько-нибудь развитых системах интернационализации.

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 18-Апр-19 22:09 
Ну ты то, гений, небойсь не сразу заметил остальной тред

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено необновленец , 18-Апр-19 01:15 
> и плагин для Vim.

хитрый план ловить вимом локализаторов же! Коварная мозилла!


"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено A.Stahl , 18-Апр-19 08:13 
И ловушки даже не нужно регулярно проверять: жертва сама выдаст себя жалобным бибиканьем.

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 19-Апр-19 07:15 
Не буду ставить плюс, что бы не поощрать болтовню стахла. Хоть _иногда_ и остроумно.

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 18-Апр-19 11:14 
>[оверквотинг удален]
>     В {$userGender ->
>         [male] его
>         [female] её
>         *[other] их
>     } коллекцию
>     {$userName} {$photoCount ->
>         [one] добавлена новая фотография
>         [few] добавлены {$photoCount} новые фотографии
>         *[other] добавлено {$photoCount} новых фотографий
>     }.

Ну, чот, не знаю.


"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 18-Апр-19 11:14 
Опеннет, ну ё-моё. Там было «изначально рассчитана на использование не техническими специалистами».

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 18-Апр-19 12:01 
Предпросмотр, ну ё-моё. Там изначально кто-то про него забыл.

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 18-Апр-19 11:59 
> Система изначально рассчитана на использование
> не техническими специалистами
> В {$userGender ->
>
> *[other] их

Всё, что нужно знать об этих специалистах.


"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 22-Апр-19 01:09 
Это скорее нужно тогда когда пользователь не выбрал пол в профиле. Либо когда пол таки "другой"...

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 18-Апр-19 12:30 
Есть ли в нём возможность импорта файлов в формате PO?
Имхо ссылки и устойчивость к ошибкам - это хорошо, но добавление логических операторов излишне. Как работать с POEdit можно объяснить за пять минут.

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Ваня Бевзюк сетевик , 18-Апр-19 13:09 
теперь будет два флюента

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено freehck , 18-Апр-19 17:04 
Ну второй, он как бы не fluent, а fluentd... Но таки да, я тоже слегка прифигел, когда прочитал, что Mozilla флюент выпустила. =)

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 18-Апр-19 16:10 
Не осилили http://userguide.icu-project.org/formatparse/messages ?

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Аноним , 19-Апр-19 02:46 
Осилили.

https://github.com/projectfluent/fluent/wiki/Fluent-and-ICU-...


"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Георгий , 18-Апр-19 19:57 
Не понял, откуда взялось деление на one, few и other. Почему именно few означает то что означает? Как определить перевод на язык, где правила кардинально другие? А если там 5 категорий, а не три?

"Компания Mozilla опубликовала систему локализации Fluent 1.0"
Отправлено Георгий , 18-Апр-19 20:03 
А, всё, открыл ссылку про категории. Оказывается, есть стандарт.