1

Satchmo 0.9.2 インストールのデフォルトで唯一のショップ言語をオランダ語に設定しようとしています。

コンテンツの翻訳に関する指示に従っています:

ディレクトリから/home/myusername/webapps/myshop/lib/python2.7/Satchmo-0.9.2-py2.7.egg次のコマンドを発行して、オランダ語の言語ファイルをコンパイルしました。

find . -name locale -exec sh -c 'cd $0 && cd ../ && python2.7 
/home/myusername/webapps/myshop/lib/python2.7/django/bin/django-admin.py 
makemessages -l nl -e html,txt,rml' {} \;

オランダ語に翻訳されたメッセージ文字列を含む複数の.../locale/nl/LC_MESSAGES/django.poファイルが表示されるようになりました。

私のlocal_settings.pyファイルにはLOCALE_PATHS変数が定義されています:

LOCALE_PATHS = ""

.po私はファイルをファイルにコンパイルしました.mo

find . -name locale -exec sh -c 'cd $0 && cd ../ && python2.7
/home/myusername/webapps/myshop/lib/python2.7/django/bin/django-admin.py 
compilemessages' {} \;

テキストをオランダ語でのみ表示したいので、私のlocal_settings.py唯一の内容は次のとおりです。

LANGUAGE_CODE = 'nl'
LANGUAGES = (
    ('nl', "Nederlands"),
)

ユーザーは他の翻訳を選択できないため、 in にallow_translation_choice設定されています。Falsesettings.py

L10N_SETTINGS = {
  'currency_formats' : {
     'EURO' : {'symbol': u'€', 'positive' : u"€%(val)0.2f", 'negative':
u"€(%(val)0.2f)",
               'decimal' : ','},
  },
  'default_currency' : 'EURO',
  'show_admin_translations': True,
  'allow_translation_choice': False,
}

同じファイルで、i18n URL を有効にしました。

SATCHMO_SETTINGS = {
    'SHOP_BASE' : '',
    'MULTISHOP' : False,
    'SHOP_URLS' : patterns('', (r'^i18n/', include('l10n.urls')),)
}

テンプレートが正しい言語コードを使用していることを確認するために、以下も使用していますsettings.py

TEMPLATE_CONTEXT_PROCESSORS = (
    'satchmo_store.shop.context_processors.settings',
    'django.core.context_processors.auth',
    'django.core.context_processors.i18n',
)

これらすべてのフープを飛び越えた後、私のショップの言語はまだ英語で表示され、右下隅に空のドロップダウンボタンがある「言語の変更」がまだあります.

誰が私がどこで間違ったのか手がかりを持っていますか?

前もって感謝します。

4

2 に答える 2

2

また、ショップを「ほぼ」新しい言語「es」スペイン語に設定する必要がありました。だから私はここに私たちのインストールとの違いを入れます:

私の設定では、私も持っています:

LC_CTYPE = 'es_ES.utf8'
TIME_ZONE = 'Europe/Madrid'

'allow_translation_choice': False, <-これは奇妙なことですが、私にとっては問題なく機能しました...これはローカル設定ファイルで上書きされる可能性がありますか?

これもsettings.pyで変更しました

#### Satchmo unique variables ####
from django.conf.urls.defaults import patterns, include
SATCHMO_SETTINGS = {
    'SHOP_BASE' : '',
    'MULTISHOP' : False,
    #'SHOP_URLS' : patterns('satchmo_store.shop.views',)
    'SHOP_URLS' :  patterns('', (r'^i18n/', include('l10n.urls')),),
    'CUSTOM_SHIPPING_MODULES': ['FLAT_SHIPPING_NORMAL',],
    #'SSL': True
}

それでも問題が解決しない場合は、de、enなどの言語を追加して、言語セレクターを有効にして、ドイツ語などに変更されるかどうかを確認しましたか?このようにして、それがオランダ語の翻訳の問題であるかどうかを確認できます。

欠落しているメッセージを翻訳しましたか...インストールを調べたところ、すでにnlのpoファイルがあります。そして、少なくともproduct-poは問題ないように見えます。したがって、おそらくmakemessages / compilemessagesを実行する必要はありませんでした...これは「新しい」言語の場合、またはpoファイルを更新する場合(ソースファイルが変更された場合)にのみ必要です...

しかし、翻訳を更新する必要がある場合は、ロゼッタをご覧になることをお勧めします...それは素晴らしいことです!新しく生成された翻訳ファイルにいくつかのバグがあることがあります(ヘッダーのみで、django-srcからの既存のファイルに基づいて手動でそれらのいくつかを配置する必要がありました:)"Content-Type: text/plain; charset=UTF-8\n" and "Content-Transfer-Encoding: 8bit\n"が、ヘッダーを新しいファイルに追加した後、それはうまく機能します。また、保存時にロゼッタがコンパイルするため、poファイルを自分でコンパイルする必要はありません。

于 2011-10-05T13:43:45.597 に答える
2

言語の切り替えを有効にするために必要な手順は次のとおりです。

1) local_settings.py で言語を変更します。

LANGUAGE_CODE = 'nl'      # not as important as would expected
LANGUAGES = (
    ('nl', "Nederlands"), # languages supported by you 
)

2) 次の行を settings.py の辞書 SATCHMO_SETTINGS に追加して切り替えを有効にします。

    'SHOP_URLS' : patterns('', (r'^i18n/', include('l10n.urls')),),

Web ページで言語を選択します。

ノート:

あなたのレポートの日付で有効な、新しくインストールされた古い Satchmo で以前のものを確認しました。(2011 年 2 月末の最終変更)

settings.py または local_settings.py で以前の値が後で別の値に設定されていないことを確認してください。

LANGUAGE_CODE がほとんどの人に期待されていることをするかどうかはわかりません。ユーザーが手動で言語を選択しておらず、ユーザーのブラウザーで優先される言語がサイトで有効になっていない場合にのみ使用されます。したがって、私は通常、英語を無効にします。

Satchmo に新しい言語を追加する場合は、それが にあることを確認してdjango/conf/localeください。(50 以上の言語があります) それ以外の場合は、FORMAT_MODULE_PATH を使用し、それに関する Django のドキュメントを読んでください。

于 2012-04-21T16:50:49.537 に答える