web-dev-qa-db-ja.com

カスタムテーマ翻訳ファイルの管理

翻訳ファイルをカスタムテーマに追加する方法

やった

my_theme.info.yml

'interface translation project': my_theme
'interface translation server pattern': themes/my_theme/translations/my_theme-%language.po

小枝テンプレート:

 {% trans %}
  status
{% endtrans %}

{{ 'status'|t }}

/ my_theme/translations/my_theme-fr.po:

msgid "status"
msgstr "statut"

msgid "statut"
msgstr "status"

続いて

drush cr

frページ(デフォルトの言語は英語)にいるとき、出力は翻訳されません。

1
Matoeil

.poファイルはthemesディレクトリーに置かれてインポ​​ートされないため、インポートする必要があります。これを行うには、次のようにします。

Home > Administration > Configuration > Region and Language > Import

1
user72672

あなたの実装は locale API documentation のガイドラインに従っているようですが、それでも私にとってはうまくいきませんでした。

私のために働いたのは、モジュールに hook_locale_translation_projects_alterをモジュールに実装することでした

function mymodule_locale_translation_projects_alter(&$projects) {
  $projects['my_theme'] = array(
    'info' => array(
      'interface translation server pattern' => 'themes/custom/my_theme/translations/my_theme-%language.po',
    ),
  );
}

最初にモジュールを有効にしてから、drushコマンドで言語を追加できるようにテストしました。

drush language-add fr

これは私のPOファイルです、Drupalには見出しセクションが必要なようです:

# French translation of Drush Site-Install
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"POT-Creation-Date: 2018-10-11 16:30+0000\n"
"PO-Revision-Date: 2018-10-11 16:30+0000\n"
"Last-Translator: NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <EMAIL@ADDRESS>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

msgid "status"
msgstr "statut"

msgid "statut"
msgstr "status"

ヘッダーがないと、最初の翻訳がスキップされ、次のエラーが発生しました。

An AJAX HTTP error occurred.
HTTP Result Code: 200
Debugging information follows.
Path: /batch?id=14&op=do_nojs&op=do
StatusText: OK
ResponseText: Notice: Undefined offset: 1 in Drupal\Component\Gettext\PoHeader->parseHeader() (line 257 of /app/core/lib/Drupal/Component/Gettext/PoHeader.php). => Array ...
1
Cesar Moore

@ Cesar Mooreの発言に感謝し、drush locale:check、次にdrush locale:updateおよびdrush cr、私の翻訳ファイルが私のカスタムテーマでも動作するようになりました:)

参考:POファイルはカスタムモジュールフォルダーにあります。

その他の参考文献:

0
WegPast