Страница 12 из 23

Re: Какие новости на фронте разработки новой версии?

Добавлено: 21 авг 2022, 12:47
DelphinPRO
Максим писал(а): 06 авг 2022, 05:06 Вот какой сейчас языковой файл, проще не придумаешь:
А тебе удобно работать с таким файлом? Просто, сколько себя помню, всегда использовались языковые файлы вида ключ/значение. А тут получается по безымянному индексу строки выбираешь? Это я как программист интересуюсь =)

Re: Какие новости на фронте разработки новой версии?

Добавлено: 24 авг 2022, 03:00
aolko
А gettext (.mo/.po) почему бы не попробовать?

Re: Какие новости на фронте разработки новой версии?

Добавлено: 24 авг 2022, 04:47
Максим
DelphinPRO писал(а): 21 авг 2022, 12:47
Максим писал(а): 06 авг 2022, 05:06 Вот какой сейчас языковой файл, проще не придумаешь:
А тебе удобно работать с таким файлом? Просто, сколько себя помню, всегда использовались языковые файлы вида ключ/значение. А тут получается по безымянному индексу строки выбираешь? Это я как программист интересуюсь =)
Ну как сказать, удобство среднее, ключом тут является номер строки. Хуже конечно чем имя-значение, но не так чтобы прям ужас, всё же и плюсы есть. Я сознательно выбрал такой формат, т.к. только в таком виде пользователи смогут легко добавлять свои переводы (можно перевести тупо копированием-вставкой через переводчик), плюс я заколебался выдумывать английские названия каждому строковому параметру.

Минусы такого формата:

- невозможность упорядочить файл в случае очистки языкового файла от устаревших констант (остаются строки-дырки и новые константы нужно записывать в них (чтобы заполнить пустоты), поэтому некоторые константы могут заноситься в файл в случайном порядке)
- отсутствие наглядности (внутри программы все языковые константы это просто числа, поэтому везде где используются языковые константы я дублирую их комментарием дублирующим константу), вот пример:
on E : Exception do
begin
  // Lang: Ошибка! Не удалось обновить файл HOSTS:
  Processor.Log( App[ 'lang' ][ 34 ].Val + '! ' + App[ 'lang' ][ 9 ].Val + ': ' + E.Message );
  exit;
end;
Плюсы такого формата:

- легкий перевод на другие языки даже неподготовленными пользователями
- не нужно выдумывать название каждому параметру по типу error_caption=Ошибка
aolko писал(а): 24 авг 2022, 03:00 А gettext (.mo/.po) почему бы не попробовать?
Пойдите объясните условному Васе или Ивану, который умеет только c html и css работать, что такое .mo/.po. :)
Дай бог чтобы он хотя бы в таком виде смог успешно перевести и прислать текстовый файл.

Re: Какие новости на фронте разработки новой версии?

Добавлено: 24 авг 2022, 08:40
DelphinPRO
На мой взгляд минусы значительно перевешивают. В первую очередь стоило думать о будущей поддержке приложения.

Что касается возможности перевода неподготовленными пользователями, то для таких существуют специальные сервисы для совместных переводов. Их много, навскидку типа такого https://weblate.org . Заводишь там акк, создаешь проект OSP и закидываешь строки для перевода. Наглядно видно прогресс по каждому языку и т.д. Или вот еще https://ru.wikipedia.org/wiki/Transifex

Названия ключей тоже не нужно выдумывать. Я обычно ключом делаю фразу на английском языке, как она есть.

{
  "Your request has been sent": "Ваша заявка отправлена",
}

И в коде это выглядит очень наглядно

lang("Your request has been sent");

Re: Какие новости на фронте разработки новой версии?

Добавлено: 24 авг 2022, 19:51
aolko
Максим писал(а): 24 авг 2022, 04:47
Пойдите объясните условному Васе или Ивану, который умеет только c html и css работать, что такое .mo/.po. :)
Дай бог чтобы он хотя бы в таком виде смог успешно перевести и прислать текстовый файл.
для таких есть json или yaml

Re: Какие новости на фронте разработки новой версии?

Добавлено: 06 сен 2022, 13:08
rengen
Тоже использую gettext во всех своих проектах.
Редактирую в программе Poedit
Удобство в том, что программа сама собирает из исходного кода фразы, подвязывает к ним ключи ещё и оставляет коммент об источнике (файл и номер строки).
Исходный текст можно писать сразу на русском и не надо придумывать латинско-символьные замены.
Отдавал переводчикам свои интерфейсы, на освоение программы уходит 15 минут.
Там же есть и автоподстановка перевода из гугла, можете хоть на китайский, хоть на языки народов африки переводить.

Текстовый файл выглядит примерно так:
#: includes/functions.php:717 includes/payment_processing.php:23
msgid "Ноября"
msgstr "November"

#: includes/functions.php:718 includes/payment_processing.php:24
msgid "Декабря"
msgstr "December"

#: includes/functions.php:730 includes/payment_processing.php:36
msgid "Сегодня"
msgstr "Today"

#: includes/functions.php:735 includes/payment_processing.php:41
msgid "Вчера"
msgstr "Yesterday"

#: includes/functions.php:739 includes/payment_processing.php:45
msgid "Завтра"
msgstr "Tomorow"

#: includes/functions.php:802
msgid "неизвестно"
msgstr "Unknown"
Даже условный "Вася" разберётся.

Re: Какие новости на фронте разработки новой версии?

Добавлено: 12 сен 2022, 11:30
aolko
Уже сентябрь. Очень ждём стабильного релиза шестой версии.

Re: Какие новости на фронте разработки новой версии?

Добавлено: 22 сен 2022, 12:59
shasoft
А можно вообще где-то скачать 6-ую версию, хотя бы нестабильную?

Re: Какие новости на фронте разработки новой версии?

Добавлено: 27 сен 2022, 11:55
aolko
Осталось 3 дня...либо кто-то нас обманул про сентябрьский релиз

Re: Какие новости на фронте разработки новой версии?

Добавлено: 27 сен 2022, 13:12
semja
aolko писал(а): 27 сен 2022, 11:55 Осталось 3 дня...либо кто-то нас обманул про сентябрьский релиз
Почитал тут форум, оказывается еще 3 года назад обещали выпусить эту 6 версию :D
Наверное какие то проблемы в разработке, сообщил бы разработчик, мы бы помогли решить