lord icon indicating copy to clipboard operation
lord copied to clipboard

Переход с intllib на minetest.get_translator

Open Doloment opened this issue 4 years ago • 6 comments

На данный момент для локализации используется мод 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: areas as submodule (убедиться, что есть перевод или отправить PR) (см. #1188)
  • [x] Translations: campfire (забрать к себе)
  • [x] #1363
  • [x] #1529
  • [x] Translations: itemframes
  • [x] Translations: mobs
  • [x] Translations: mobs_fish
  • [x] Translations: painting as submodule (убедиться, что есть перевод или отправить PR)
  • [x] #1526
  • [x] #1527
  • [x] #1528
  • [ ] #1185

Doloment avatar May 05 '21 10:05 Doloment

Информация о встроенном локализаторе

Будет достаточно заменить это в каждом моде (кроме возможных исключений)

local SL = lord.require_intllib()

на

local SL = minetest.get_translator(minetest.get_current_modname())

ghost avatar Jun 11 '21 17:06 ghost

Будет достаточно заменить это в каждом моде (кроме возможных исключений)

На самом деле, не будет. Помимо этого нужно будет переименовывать и немного переписывать файлы, в которых у нас содержатся указания для локализатора:

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
...

Также нужно будет добавлять английские локализации в местах, где мы их пропускали. В общем, работы много.

Doloment avatar Jun 12 '21 07:06 Doloment

https://github.com/minetest-tools/update_translations Еще полезный скрипт показал @ptah-alexs. Генерирует файл для перевода

ghost avatar Jun 12 '21 10:06 ghost

Написал конвертер для перехода с intllib на minetest.get_translator https://github.com/ptah-alexs/minetest_i18n_helper

ptah-alexs avatar Jun 13 '21 06:06 ptah-alexs

Встроенный локализатор не воспринимает стандартный перенос строки \n, вместо него надо писать @n. Подробнее здесь

varttist avatar Apr 23 '23 13:04 varttist

обновил описание списком из _various для #946

alek13 avatar Oct 17 '23 17:10 alek13