двуязычные метки пользовательских полей с ACF (бесплатная версия) - PullRequest
0 голосов
/ 30 апреля 2018

Я использую настраиваемые поля (с бесплатной версией ACF ) для добавления дополнительного, иногда необходимого, отформатированного содержимого к соответствующим записям настраиваемого типа записи. Я собрал небольшой плагин для конкретного сайта, который включает в себя фильтры для добавления пользовательских полей к фрагменту и содержанию и выводит их через цикл в виде списка:

{CUSTOM FIELD LABEL}: {CUSTOM FIELD VALUE}

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

Из того, что я прочитал на i18n / l10n и Wordpress, я понял, что лучше всего использовать __() для меток при создании пользовательских полей. Поскольку создание настраиваемых полей осуществляется с помощью кода плагина ACF, я предполагаю, что мне нужно создать поля «самому», чтобы я мог делать многоязычные метки, используя __(). Я думаю, я бы тогда реализовал фактический перевод полей с помощью Loco Translate .

ACF предлагает удобный способ экспорта уже существующих групп полей, созданных ACF, который предоставляет мне код PHP для создания полей "самостоятельно" . Я поместил код ACF в новую функцию в моем плагине для конкретного сайта и подключил его к действию acf/init. Я сделал почти то же самое, что описано в этом вопросе , но ничего не происходит: когда я удаляю группы пользовательских полей в интерфейсе ACF впоследствии, никакие настраиваемые поля не появляются на экране «Новое сообщение».

В общем, у меня один вопрос, который, в зависимости от ответа, породит последующие вопросы:

  • Вот как я должен и могу реализовать двух / многоязычные метки пользовательских полей?
    • Если нет: как еще вы можете использовать двуязычные метки / имена пользовательских полей?
    • Если да: я подключаю функцию к неправильному действию?

PS: я не был уверен, принадлежит ли это здесь или в WP StackExchange, так как его часть связана с кодированием, а часть - с логикой перевода. Пожалуйста, скажите мне, если я должен перенести его на другую платформу.

1 Ответ

0 голосов
/ 03 мая 2018

Хорошо

Тем временем я смог решить большинство из них:

  • Я не подключился к правильному действию. Оказывается, acf/init доступен только в ACFv5 (pro), в то время как бесплатная версия все еще в версии 4.x. Я подключился к init - et voilà: есть мои полевые группы.
  • Используя __() функции для объявления меток моих пользовательских полей, Loco Translate значительно облегчил сам перевод строк.

Заключение

Очевидно, мои предположения были верны - это как создавать интернационализированные метки настраиваемых полей :) Тем не менее, я не смог эффективно перевести параметры поля флажка, который я использую, хотя Loco распознал строку, и я предоставил перевод.

Однако ....

Решение далеко от совершенства:

  • Сейчас я использую два плагина для максимально возможного перевода на сайт.
  • Создавая группы полей ACF «сам» с помощью PHP-кода в моем специфичном для сайта плагине, мне нужно было удалить их из пользовательского интерфейса администратора. Это означает, что обычным пользователям будет сложно что-либо изменить в будущем (что, конечно, также может быть функцией):))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...