web-dev-qa-db-ja.com

言語パック(または言語固有の文字列オーバーライド)をテンプレートに追加する方法は?

それで、私は私のjoomlaサイトに2番目のコンテンツ言語を追加する過程にあり、問題が発生しています。私は2番目の言語(ドイツ語)を正常に追加し、2番目の言語のコンテンツを使用してサイトを再構築し、言語スイッチャーをうまく実装しました。私が持っている問題は、翻訳が必要なすべての文字列が翻訳されるわけではないということです。

contact page screenshot

画像では、フォームコンポーネントとテキストは正しく翻訳されていますが、「住所」、「電話」、「その他の情報」の文字列は翻訳されていません。

サイトはJoomla 3.6に更新され、コア連絡先コンポーネントを使用しています。

ドイツ語の言語パックを確認しましたが、翻訳したい文字列ごとに正しい翻訳が存在することを確認できましたが、これらの翻訳は連絡先ページに一貫して適用されていません。

これらの文字列には言語オーバーライドを適用できません。翻訳がすでに存在しているためです。英語の文字列をターゲットにすると、サイト全体の翻訳は正しくなります。

Template MonsterのTheme 1498を使用していますが、テンプレート言語フォルダーには単一言語(英語GB)パックしかありません。 TPL_CONTACT_ADDRESSファイルのTPL_CONTACT_PHONESTPL_CONTACT_MISC、および[template]/html/com_contact/contact/default_address.phpの文字列値を変更する必要があることを確認しました。

これらの文字列はすべて、テンプレート内の言語パックに含まれています。インストール済みの言語パック内には正しい翻訳が存在するため、非常に役立つ回答から、私の以前の質問に対する文字列をテンプレートで上書きする必要があります。

したがって、私の質問は、ハードコーディングされた英語の文字列を削除して通常の翻訳を機能させる方法、または正しい言語が読み込まれたときにこれらの文字列に自分の正しい翻訳を適用する方法です。私はこれを行う方法について1つまたは2つのチュートリアルを見つけましたが、それらは多少矛盾しているか、より具体的なユースケースに適用されているようです。

3
nizz0k

これに対処するにはいくつかの方法があります。

1。テンプレート用にドイツ語のiniファイルを作成します。

a。言語フォルダに移動-> EN-GB

b。テンプレートのEN-GB言語ファイルを見つけます。 en-GB.tpl_theme1498.ini

c。 de-DE言語フォルダーにコピーします。

d。名前をde-DE.tpl_theme1498.ini(または、theme1498の名前付け)に変更します。

e。それを編集し、英語の翻訳を希望の翻訳に置き換えます。
例えば:
-TPL_CONTACT_MISC="Miscellaneous Info"変更:
-TPL_CONTACT_MISC="Your german misc info translation"


2。テンプレートの翻訳可能な言語文字列の言語オーバーライドを作成します。

a。バックエンドで-Extensions-> Languages-> Overridesに移動します

b。左側のフィルターを使用して、GER DE-SITE、上書きをフィルターします。

c。連絡先テンプレートの上書きファイルを開いて、言語定数を探します。それぞれをコピーし、[上書き]ページの[新しいボタン]をクリックして、新しい上書きを作成します。

d。言語定数を貼り付け、対応するフィールドに目的の翻訳を入力します。セーブ。

Create new language override


3。オーバーライドをオーバーライドする:独自の言語ストリングまたはcom_contactからのストリングを追加します。

このテンプレートはほとんど更新されないでしょう。私個人的には、テンプレートの言語文字列をcom_contactコンポーネントのデフォルトの文字列で置き換えるこのオプションを使用することもできました。

3
FFrewin

つまり、私の場合は、英語のテンプレート言語フォルダーに単一の言語パックを含めることで、文字列がテンプレートにハードコード化されていました。私がしたことは、フォルダーとファイルをコピーしてラベルを付け直し(たとえば、en-GB-> de-DEから)、必要な文字列の値を更新することによって、独自の言語ファイルを作成することでした。重要な要素は、テンプレートフォルダーのルートにあるtemplateDetails.xmlファイルを更新して、新しい言語フォルダーへのポインターと言語タグ内のファイルを含めることでした。ここでも、コード行をコピーして、正しいファイルとフォルダーを指すように更新しました。これは tutorial が参考になりましたが、別のユースケースに適用されるため、説明が直接対応していません。私の前回の質問への回答と、 この質問への回答と応答のおかげで、私はようやくヒントを得ることができました

2
nizz0k