Интернационализация (локализация) за WordPress разработчици
Какво е интернационализация
Интернационализацията е процес на разработване на плъгин, така че да може лесно да се превежда на други езици. Локализацията описва последващия процес на превод на плъгин, разработен по този начин. Интернационализацията на английски език често се съкращава с "i18n" (в думата "интернационализация" има точно 18 знака между първата и последната буква), а локализацията се съкращава с "l10n" (в думата "локализация" има 10 знака между първата и последната буква).
Защо интернационализацията е толкова важна?
WordPress се използва по целия свят, така че би било хубаво да можете да превеждате плъгина на всеки желан език. Като разработчик ще ви бъде трудно да осигурите локализация за всички потребители без изключение. В крайна сметка вие може да не знаете езика, който трябва да преведете. Всеки разработчик обаче може успешно да интернационализира тема, така че други да могат да създават локализация, без да е необходимо да променят изходния код.
Въведение в Gettext
За интернационализация WordPress използва библиотеки и инструменти gettext. Gettext е дългогодишен и доста добре утвърден софтуер, използван в света с отворен код.
Ето накратко как работи:
- Разработчиците "увиват" низове, които изискват превод, в специални gettext функции.
- Специални инструменти анализират файлове с изходен код и извличат низове за превод в POT файлове (Шаблон на преносими обекти - Шаблон на преносими обекти)
- В WordPress POT файловете най-често се подават от GlotPress, който е инструмент за споделяне.работа за преводачи.
- Преводачите си вършат работата и резултатът е PO файл (POT файл, но с превод вътре)
- PO файловете се компилират в двоични MO файлове, които осигуряват бърз достъп до низове, докато системата работи.
Запомнете следното:преводимите низове се извличат, когато се анализират специални функции в изходния код, те не се извличат по време на изпълнение.
Обърнете внимание, че в активна система ще видите функцията _(), която се отнася до оригиналната функция, съвместима с php gettext, но в WordPress трябва да използвате функцията WordPress __().
Текстови домейни
Ако превеждате плъгин или тема, трябва да използвате текстовия домейн, за да посочите целия текст, който принадлежи на този плъгин. Това подобрява възможностите за пренасяне и превод и също така увеличава съвместимостта с вече съществуващия набор от инструменти на WordPress.Текстовият домейн трябва да съответства на "slug" на този плъгин.
Текстовият домейн трябва да се добави към заглавката на плъгина. WordPress трябва да интернационализира метаданните на вашия плъгин или тема, когато показва плъгина в административния панел: