Статьи

Интернационализация проектов WordPress: обновления с помощью WordPress 4.6

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

Хотя в WordPress 4.6 произошли некоторые изменения в том, как интернационализация и локализация работают, это не означает, что предыдущие уроки не имеют значения. Это просто означает, что способ распространения ваших плагинов и их локализаций изменится.

И это то, что мы собираемся осветить в этом уроке.

Как уже упоминалось, в этом руководстве предполагается, что вы освоили все, что мы обсуждали в этой серии. Это включает:

  • Понимание интернационализации и почему это важно.
  • Как настроить среду разработки для работы с примером кода.
  • Понимание локализации (и разницы между интернационализацией).
  • Как использовать инструменты, чтобы начать переводить ваши интернационализированные строки.

Если ничего из вышеперечисленного не имеет смысла, пожалуйста, просмотрите серию. Если вы уверены, что можете объяснить или использовать каждый из пунктов выше, то вы готовы продолжить.

Хорошая вещь в этом уроке состоит в том, что он более информативный, чем теоретический (или практический, если на то пошло). То есть не будет никакого кода для демонстрации. Это просто распространение информации и уверенность в том, что вы знаете, что и когда использовать.

Прежде чем мы углубимся в тему, давайте вернемся немного назад и поговорим обо всем процессе интернационализации WordPress и о том, как он работает с загрузкой локализованных файлов.

Понятия интернационализации и локализации относительно легко понять, но их также легко спутать (когда я впервые начал свою работу в WordPress, даже я неправильно использовал термины).

Интернационализация — это процесс разработки вашего плагина, чтобы его можно было легко перевести на другие языки.

Таким образом, именно так мы подготавливаем все строки и читаемый человеком текст в нашем плагине, которые необходимо перевести для других локалей.

Таким образом, локализация — это фактический перевод строк и их объединение в языковые пакеты, которые затем будут загружаться WordPress в зависимости от локали, установленной при установке.

Например, скажем, я создаю плагин и использую американский английский или в локали en_US как вы можете видеть написанным. Затем вы увидите весь текст, который я написал на моем языке.

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

Затем она или он сохранит их в каталоге languages (или в любом другом используемом каталоге). Файл должен быть назван в зависимости от локали, к которой он относится. В этом случае es_ES .

Каталог языков для панели отладки

Когда плагин загружается в установке WordPress, установленной на компьютере, для es_ES языковой стандарт es_ES установлен в качестве es_ES стандарта по умолчанию, будет загружен файл локализации, который заменит все переведенные строки их испанскими эквивалентами.

И долгое время так работал процесс интернационализации. Кроме того, если вы решите распространять плагины за пределами хранилища плагинов WordPress, это то, что вам все равно нужно будет сделать.

Но как насчет этих плагинов, распространяемых в хранилище?

В компьютерных науках существует концепция JIT (или «точно в срок»), и мы часто слышим, что ее называют компиляцией «точно в срок» .

В вычислениях JIT-компиляция, также известная как динамическая трансляция, является компиляцией, выполняемой во время выполнения программы — во время выполнения — а не перед выполнением.

В последней версии WordPress, то есть WordPress 4.6 , интернационализированные плагины, соответствующие определенному протоколу, могут использовать преимущество своевременной локализации. Из блога Make WordPress эти изменения можно обобщить следующим образом:

Поскольку файлы переводов обычно находятся внутри wp-content / languages, WordPress теперь сканирует этот каталог на наличие доступных переводов и автоматически загружает их, если впервые сталкивается с текстовым доменом.

Что это значит для нас, разработчиков? Короче говоря, это означает, что если мы распространяем нашу работу через репозиторий плагинов WordPress, WordPress сначала просканирует свою библиотеку переводов, чтобы увидеть, существует ли она для текущего плагина и его локали. Если он обнаружит один, то он будет использовать этот.

Если он не обнаруживает перевод, может произойти одно из двух:

  1. Плагин просто не будет локализован.
  2. Плагин будет использовать файл локализации, который включен в плагин.

Однако у этого нового подхода есть некоторые предостережения:

  1. Нам больше не нужно вызывать load_plugin_textdomain() в наших плагинах для WordPress 4.6.
  2. Если вы привыкли использовать unload_textdomain() , вам нужно будет вручную загрузить переводы после вызова, если вы хотите использовать их снова.

Хотя они просты, я настоятельно рекомендую прочитать сообщение в блоге целиком, чтобы понять, как оно работает, его функциональность и как оно применяется к работе, которую вы делаете изо дня в день.

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

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

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

И с этим мы рассмотрели все, что можем, о том, как WordPress обрабатывает интернационализацию и локализацию для плагинов, которые будут доступны как в репозитории плагинов WordPress, так и в тех, которые вы будете распространять через свои собственные каналы.

Если вам интересно больше узнать о WordPress с точки зрения разработки, обратите внимание, что я работаю исключительно с WordPress и часто пишу об этом. Вы можете просмотреть все мои курсы и учебные пособия на странице моего профиля , а также можете следить за мной в моем блоге и / или Twitter по адресу @tommcfarlin, где я говорю о разработке программного обеспечения в контексте WordPress.

Как всегда, если вы ищете другие утилиты, которые помогут вам создать свой растущий набор инструментов для WordPress или, например, код для изучения и стать более опытным в WordPress, не забудьте посмотреть, что у нас есть в Envato. Рынок

Не стесняйтесь оставлять любые вопросы или комментарии в ленте ниже, и я постараюсь ответить на каждый из них.

Есть несколько ресурсов, перечисленных ниже. Обратите внимание, что они взяты из предыдущих уроков, а также из того, что упоминалось в этом уроке. Все это говорит о том, что если вы читали предыдущие уроки, вы должны быть в хорошей форме. Если вы решили не делать этого, то, по крайней мере, просмотрите ссылки ниже.

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