i18n у файлах XML RKWard

Для файлів xml RKWard i18n здебільшого працює без будь-яких додаткових зусиль. Якщо ви створюєте власну .pluginmap (наприклад, для зовнішнього додатка), вам слід вказати po_id поряд із id у pluginmap. Це визначить «каталог повідомлень», який слід використовувати. Загалом, це має бути рядок, який є ідентичним до id вашого .pluginmap, але якщо ви надаєте у додатку декілька пов'язаних .pluginmap у одному пакунку, вам, ймовірно, варто вказати загальний po_id у ваших картах. Значення po_id з файла .pluginmap успадковується усіма оголошеними у ньому додатками, якщо у них не оголошено інше значення po_id.

У файлах опису графічного інтерфейсу та на сторінках довідки вам не потрібно повідомляти RKWard, які саме рядки слід перекладати, оскільки це зрозуміло з використання цих рядків. Втім, як ми вже пояснювали раніше, вам варто слідкувати за тим, щоб не виникало двозначностей, та тим, щоб усі рядки мали достатні для правильного перекладу пояснення. Для рядків із неоднозначним тлумаченням можна вказати контекст i18n_context ось так:

<checkbox id="scale" label="Scale" i18n_context="Показати шкалу"/>
<checkbox id="scale" label="Scale" i18n_context="Масштабувати креслення"/>
                

Надання контексту i18n_context забезпечить можливість перекласти два рядки по-різному. Якщо б контекст не було вказано, обидва рядки мали б абсолютно однаковий переклад. Крім того, контекст буде показано перекладачеві. Підтримку атрибута i18n_context передбачено для усіх елементів, які можуть містити придатні до перекладу рядки, зокрема елементів, які містять у собі текст (наприклад елементів <text>).

У інших випадках рядок для перекладу може мати однозначне значення, але все ж потребує роз’яснення. Для таких рядків можна додати коментар, який буде показано перекладачам. Приклад:

<!-- i18n: Ні, це не друкарська помилка у слові «screen»! -->
<component id="scree_plot" label="Scree plot"/>

<!-- i18n: Якщо можна, зробіть переклад якомога коротшим. Переклад з понад 15 символів виглядатиме
тут доволі кострубато, значення має бути майже очевидним для користувача
(вибір зі списку значень, показаного поряд із цим елементом) -->
<valueslot id="selected" label="Pick one"/>
                

Зауважте, що такі коментарі мають передувати елементу, до якого їх застосовують, і мають починатися з «i18n:» або «TRANSLATORS:».

Нарешті, у рідкісних випадках, у вас може виникнути потреба у виключенні деяких рядків з перекладу. Це має сенс, наприклад, якщо ви надаєте користувачеві вибір між певними назвами функцій R у елементі <radio>. Звичайно ж, назви функцій не можна перекладати, тоді можна зробити так (втім, залежно від контексту, можна просто додати описову мітку функції):

<radio id="transformation" label="R function to apply">
  <option id="as.list" noi18n_label="as.list()"/>
  <option id="as.vector" noi18n_label="as.vector()"/>
  [...]
</radio>
                

Зауважте, що вам слід прибрати атрибут label і вказати замість нього атрибут noi18n_label. Також зауважте, що на відміну від використання i18n_context і коментарів, використання noi18n_label зробить ваш додаток несумісним із версіями RKWard до версії 0.6.3.