2011-03-03 36 views
1

我正在嘗試將Satchmo 0.9.2安裝的默認和唯一商店語言設置爲荷蘭語。無法在Satchmo中設置店鋪語言

我下面就translating content說明:

從目錄/home/myusername/webapps/myshop/lib/python2.7/Satchmo-0.9.2-py2.7.egg我發出以下命令來編譯荷蘭的langauge文件:

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文件至極包含messagestrings翻譯成荷蘭語。

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"), 
) 

用戶不應該被ablo選擇其他的翻譯,所以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, 
} 

,並在同一個文件我已經啓用了我的國際化網址:

​​

要確保我的模板使用正確的語言代碼,我也有settings.py

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

後j通過所有這些環節,我的商店語言仍然以英語顯示,並且在右下角還有一個空的下拉按鈕,具有「更改語言」。

任何人都有線索,我哪裏出錯了?

在此先感謝。

+0

如果您在Satchmo中找到根據您的國家命名的目錄(即荷蘭語中的'nl'),這意味着您的語言受到某種方式的支持,並且您現在可以跳過「翻譯內容」**並開始測試它。 (不發送消息,編寫新的翻譯,編譯消息)自2010年8月起,荷蘭語得到支持。稍後您可以返回以改進未完成的廢棄翻譯。沒有用你的語言寫一行,第一步是沒有用的。 – hynekcer 2012-04-21 14:48:25

回答

2

我還不得不將商店設置爲「幾乎」新語言的「西班牙語」。所以,我就擺在這裏我們安裝的任何分歧:

在我的設置我也有:

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 
} 

如果一切都沒有幫助,你嘗試加入更多的語言,如德語,英語,使語言選擇,看看它是否變爲例如德語?這樣你可以發現這只是荷蘭語翻譯的問題。

您是否翻譯過任何遺漏的郵件...我剛剛查看了我的安裝,它已經有了nl的po-files。至少產品 - po看起來很好。所以你可能不需要運行makemessages/compilemessages ...這隻需要「新」語言,或者當你想更新po文件(如果源文件改變)...

但是,如果你需要更新翻譯,我會建議你看一下羅塞塔......這太棒了!有時候,新生成的翻譯文件會出現一些錯誤(只有頭文件,我不得不手動添加一些文件,基於django-src中的現有文件:"Content-Type: text/plain; charset=UTF-8\n" and "Content-Transfer-Encoding: 8bit\n"),但是在將文件頭添加到新文件後,效果很好。而且您不必自己編譯po文件,因爲rosetta在保存時會執行此操作。

2

唯一必要的步驟,以使切換語言是:

1)改變語言在local_settings.py:

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

2)使能通過將下面的行到詞典中SATCHMO_SETTINGS設置的切換。 py:

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

在網頁上選擇你的語言。

注:

我已經驗證了現在以前的新老安裝有效的Satchmo在您的報告的日期。 (2011年2月底的最後一次更改)

確實看起來以後沒有以前的值設置爲settings.py或local_settings.py中的其他值。

我不確定LANGUAGE_CODE是否符合大多數人的預期。僅當用戶沒有手動選擇任何語言並且用戶瀏覽器偏好的語言不是由站點啓用時才使用它。所以我通常禁用英文。

如果要向Satchmo添加新語言,請確認它位於django/conf/locale。 (有超過50種語言)否則使用FORMAT_MODULE_PATH並閱讀關於它的Django文檔。