Bes
Posts: 5422
|
(01.12.2017 23:26)Berserker Wrote: я пишу так:
Попутно создаю Lang\test.json с содержимым:
Code:
{
"hero_is_x_age": "@hero@ достиг @age@ лет"
}
Выводится: «Berserer достиг 27 лет»
Из каких элементов состоит локализация:
1) Автоматическая подгрузка языковых json-файлов формата { "глобальный уникальный ключ": "перевод", ... }
2) Совпадающие строки из разных модов подчиняются приоритетам модов (последний установленный весомее)
3) Перевод по ключу можно загрузить из ЕРМ или плагина.
4) В перевод можно передать до 7 именованных параметров (плагинам — неограниченно), которые будут подставлены в перевод при необходимости.
@имя параметра@
5) SN:T(ключ)/?(z-переменная)/(параметр 1)/(значение 1)/(параметр N)/(значение N);
Команда получает перевод строки или возвращает сам ключ, если перевод не найден.
Berserker, в последствии ограничение в 7 параметров осталось для ERA2 ?
|
|
06.11.2020 00:41 |
|
Berserker
Posts: 16657
|
|
06.11.2020 01:24 |
|
Elmore
Posts: 608
|
(05.06.2021 01:20)Elmore Wrote: Как вы делаете переводы своих модов? Вопрос к тем, кто не пишет перевод самостоятельно, а пользуется переводчиком.
Можно сделать такую схему:
- Все тексты выносить в отдельный файл и оформлять по единому шаблону. Например в ini с минимум лишнего или типа того.
- В программе указать файл для перевода и файл для сохранения текста. Подходит для любых языков.
- Программой автоматом пройтись по файлу, по очереди брать каждую строку, кидать в браузере на translate.google.com и записывать в новый файл с таким же шаблоном.
google api бесплатное не в счет, там нет ИИ алгоритмов при переводе. Только в платной версии.
Berserker, увидел json из ACM. Ну суть та же. Если все будут использовать единый метод, прога возьмет весь текст и прогонит через переводчик (в ней как раз используется js и nodejs).
Я себе для другой задачи сделал, может смогу и для героев сделать. Сложно сказать, т.к. вижу код вместе с текстом используется и он не всегда даже выделен какими-то спец символами, но вроде гугл такое не переводит. Только вот там распространяемый архив будет небольшой, а для запуска автоматически скачает полноценный браузер ~700мб.
Либо же должно "что-то" еще произойти, чтобы все новые моды хранили тексты только в json (а еще лучше в специальной папке "languages/lang_name" и менять язык где-то в файле-конфиге). Это даст возможность, хоть и не идеально, но получить мультиязычность модов.
(This post was last modified: 05.06.2021 23:28 by Elmore.)
|
|
05.06.2021 23:21 |
|
Berserker
Posts: 16657
|
|
06.06.2021 00:29 |
|
Elmore
Posts: 608
|
{~%Z6}%Z5%Z-7 Fire Shield{~}
Вот с таким сложнее. Там может еще что-то быть, кроме {}, @@, % ?
|
|
06.06.2021 01:07 |
|
Elmore
Posts: 608
|
Сложность в определении нужного. В данном случае текст из 2х слов и получается:
[{~%Z6}][%Z5%Z-7] [Fire Shield][{~}]
от % до пробела, если не %%
Но пока думаю, как определять процент в середине слова и как обрабатывать... остальное легко.
Такая ситуация "{}%что-то" или "%что-то{}" слитно может быть где-то, кроме начала и конца строки?
(This post was last modified: 06.06.2021 02:20 by Elmore.)
|
|
06.06.2021 02:17 |
|
Berserker
Posts: 16657
|
|
06.06.2021 02:53 |
|
Elmore
Posts: 608
|
Berserker, в json возможна ситуация кроме key.key.value ?
(This post was last modified: 11.06.2021 15:14 by Elmore.)
|
|
11.06.2021 15:11 |
|
Berserker
Posts: 16657
|
|
11.06.2021 16:25 |
|
Elmore
Posts: 608
|
Понял, значит будет проверять чуть больше.
(This post was last modified: 11.06.2021 17:34 by Elmore.)
|
|
11.06.2021 17:33 |
|
Archer30
Posts: 1175
|
I have a bit of difficulty working on non-ascii characters ( ») with JSON, it doesn't seem to have any way to be shown in the game correctlyy.
Screenshot:
The » symbol is both in my ert and json. The one from ert was displayed correctly (blue), while the one from json was just displayed as ? (red).
json:
Code:
{
"es":{
"747":{
"basicDesc": "\n{»} {10%} of unused movement points convert to experience points. ",
"advancedDesc": "\n{»} {20%} of unused movement points convert to experience points. ",
"expertDesc": "\n{»} {30%} of unused movement points convert to experience points."
}
}
}
erm:
I wonder if there is a way to solve it for json, otherwise I may have to do a mix of json +ert.
Latest ERA mods and scripts in development - My GitHub
(This post was last modified: 03.04.2022 17:52 by Archer30.)
|
|
03.04.2022 13:33 |
|
Berserker
Posts: 16657
|
|
03.04.2022 17:48 |
|
Archer30
Posts: 1175
|
|
03.04.2022 17:51 |
|