Переход с intllib на minetest.get_translator
На данный момент для локализации используется мод intllib. В Minetest уже есть инструмент для перевода, причём работает он для каждого клиента по своему, в отличие от мода на стороне сервера.
@alek13 : Оставшееся:
- [x] #944
- [x] #945
- [x] #946
- [x] #947
- [x] #948
- [x] #949
- [x] #950
- [x] #951
- [x] #952
- [x] #953
- [x] #954
- [x] #955
- [x] #956
- [x] #957
- [x] #1013
- [x] #1014
- [x] #1025
UPD:
нужно выкорчевать старый вариант (#946), для этого нужно определиться с модами из _various:
- [x] Translations:
areasas submodule (убедиться, что есть перевод или отправить PR) (см. #1188) - [x] Translations:
campfire(забрать к себе) - [x] #1363
- [x] #1529
- [x] Translations:
itemframes - [x] Translations:
mobs - [x] Translations:
mobs_fish - [x] Translations:
paintingas submodule (убедиться, что есть перевод или отправить PR) - [x] #1526
- [x] #1527
- [x] #1528
- [ ] #1185
Информация о встроенном локализаторе
Будет достаточно заменить это в каждом моде (кроме возможных исключений)
local SL = lord.require_intllib()
на
local SL = minetest.get_translator(minetest.get_current_modname())
Будет достаточно заменить это в каждом моде (кроме возможных исключений)
На самом деле, не будет. Помимо этого нужно будет переименовывать и немного переписывать файлы, в которых у нас содержатся указания для локализатора:
For each language you want your mod to be translated in, create a file named "[yourmodname].[language].tr" in the "locale/" folder of your mod, with the following contents:
# textdomain: [your mod name here] string1=translation1 string2=translation2 ...
Также нужно будет добавлять английские локализации в местах, где мы их пропускали. В общем, работы много.
https://github.com/minetest-tools/update_translations Еще полезный скрипт показал @ptah-alexs. Генерирует файл для перевода
Написал конвертер для перехода с intllib на minetest.get_translator https://github.com/ptah-alexs/minetest_i18n_helper
Встроенный локализатор не воспринимает стандартный перенос строки \n, вместо него надо писать @n.
Подробнее здесь
обновил описание списком из _various для #946