如何更改django管理标头中的"Django管理"文本?
它似乎没有在"自定义管理员"文档中介绍.
我的本地机器在Ubuntu 8.10上运行Python 2.5和Nginx,Django是从最新的开发中继构建的.
对于我请求的每个URL,它会抛出:
TemplateDoesNotExist位于/ appname/path appname/template_name.html
Django尝试按以下顺序加载这些模板:*使用loader django.template.loaders.filesystem.function:*使用loader django.template.loaders.app_directories.function:
TEMPLATE_DIRS('/usr/lib/python2.5/site-packages/projectname/templates',)
在这种情况下,它是否在寻找/usr/lib/python2.5/site-packages/projectname/templates/appname/template_name.html?奇怪的是这个文件确实存在于磁盘上.为什么Django找不到它?
我在Ubuntu 9.04上使用Python 2.6在远程服务器上运行相同的应用程序,没有这样的问题.其他设置是相同的.
我的本地计算机上是否有任何配置错误,或者可能导致此类错误的内容我应该查看?
在我的settings.py中,我指定了:
SETTINGS_PATH = os.path.normpath(os.path.dirname(__file__))
# Find templates in the same folder as settings.py.
TEMPLATE_DIRS = (
os.path.join(SETTINGS_PATH, 'templates'),
)
Run Code Online (Sandbox Code Playgroud)
它应该寻找以下文件:
以上所有文件都存在于磁盘上.
解决了
它在我尝试后现在有效:
chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/*
Run Code Online (Sandbox Code Playgroud)
真奇怪.我不需要在远程服务器上执行此操作以使其工作.
我有一个关于使用ugettext和ugettext_lazy翻译的问题.我在模型中学到了我应该使用的ugettext_lazy,而在视图ugettext中.但是还有其他地方,我应该在哪里使用ugettext_lazy?表格定义怎么样?它们之间是否有任何性能差异?
编辑:
还有一件事.有时候,不是ugettext_lazy,ugettext_noop被使用.正如文档所说,ugettext_noop字符串只标记为翻译并在最新可能的情况下翻译,然后再显示给用户,但我在这里有点困惑,是不是与此类似ugettext_lazy?我仍然很难决定哪个,我应该在我的模型和表格中使用哪个.
我正在尝试翻译Django应用程序.我{% trans %}在模板中创建了一些字符串.但是,当我在我的app文件夹中执行以下命令时,收到一条错误消息:
$ django-admin.py makemessages -l fr
CommandError: Unable to find a locale path to store translations for file __init__.py`
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
我正在翻译一个django应用程序,我想翻译django管理站点的主页.
在此页面上列出了应用程序名称和模型类名称.我想翻译模型类名,但我找不到如何为模型类提供用户友好的名称.
有谁知道怎么做?
你能解释一下ugettext和ugettext_lazy的主要区别吗?
当我试着
return HttpResponse(ugettext_lazy("Hello"))
Run Code Online (Sandbox Code Playgroud)
我什么都没看到,但是
return HttpResponse(ugettext("Hello"))
Run Code Online (Sandbox Code Playgroud)
工作中.
为什么?
谢谢.
我正在尝试使用django-multilingual并正确设置它.但我发现除了模板用法示例之外,django-multilingual的一切都很清楚.
我刚开始使用django并且我不知道,也许是因为这个原因,我无法弄清楚如何在模板端切换语言.
您是否有任何示例或任何"更多"明确的来源/文档?
我想获取浏览器的默认语言。我为此尝试了一些代码,但对我来说没有任何效果。
我可以从中获取在浏览器中激活的所有语言的数组request.META['HTTP_ACCEPT_LANGUAGE']。但是我如何获得设置为默认的语言。
我想以英语和西班牙语部署网站,并检测用户浏览器语言并重定向到正确的区域设置站点.
我的网站是www.elmalabarista.com
我安装了django-localeurl,但我发现没有正确检测到该语言.
这是我的中间件:
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'multilingual.middleware.DefaultLanguageMiddleware',
'middleware.feedburner.FeedburnerMiddleware',
'lib.threadlocals.ThreadLocalsMiddleware',
'middleware.url.UrlMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'maintenancemode.middleware.MaintenanceModeMiddleware',
'middleware.redirect.RedirectMiddleware',
'openidconsumer.middleware.OpenIDMiddleware',
'django.middleware.doc.XViewMiddleware',
'middleware.ajax_errors.AjaxMiddleware',
'pingback.middleware.PingbackMiddleware',
'localeurl.middleware.LocaleURLMiddleware',
'multilingual.flatpages.middleware.FlatpageFallbackMiddleware',
'django.middleware.common.CommonMiddleware',
)
Run Code Online (Sandbox Code Playgroud)
但是,尽管我的操作系统和浏览器设置是西班牙语,但该网站总是到达美国.
LANGUAGES = (
('en', ugettext('English')),
('es', ugettext('Spanish')),
)
DEFAULT_LANGUAGE = 1
Run Code Online (Sandbox Code Playgroud)
然后,我破解了locale-url的中间件并执行此操作:
def process_request(self, request):
locale, path = self.split_locale_from_request(request)
if request.META.has_key('HTTP_ACCEPT_LANGUAGE'):
locale = utils.supported_language(request.META['HTTP_ACCEPT_LANGUAGE'].split(',')[0])
locale_path = utils.locale_path(path, locale)
if locale_path != request.path_info:
if request.META.get("QUERY_STRING", ""):
locale_path = "%s?%s" % (locale_path,
request.META['QUERY_STRING'])
return HttpResponseRedirect(locale_path)
request.path_info = path
if not locale:
locale = settings.LANGUAGE_CODE
translation.activate(locale) …Run Code Online (Sandbox Code Playgroud) 有没有办法LANGUAGE_CODE在单击按钮(发送请求)时动态更改settings.py 中变量的值?
我希望用户为自己的帐户设置自己的"默认语言" .
现在,用户可以使用下拉列表选择他们的首选语言,并且网站被完美翻译,并且由于Django选择了浏览器的语言,用户在重新打开网站后不需要重新选择他们的语言浏览器.
但是当他们从不同的浏览器打开网站时,默认语言又是"英语",因为在settings.py中设置了LANGUAGE_CODE变量en-us.
所以我想要做的是让每个用户都可以选择他们想要的语言作为默认语言.我想通过制作另一个(类似的)下拉菜单并要求用户选择他们想要的语言作为"默认"并按下save按钮来执行此操作,并且在保存时,我想将LANGUAGE_CODE值更改为由用户(即动态更改).但我不知道如何LANGUAGE_CODE动态改变价值.
此外,这种方法还有一个问题.根据Django的文档,即使我能够LANGUAGE_CODE动态更改此变量,也会使网站将所选语言作为所有用户的默认语言,而不仅仅是针对那个更改它的特定用户:
LANGUAGE_CODE:
- 如果未使用区域设置中间件,则会决定向所有用户提供哪种翻译.
我研究了很多,但找不到适合我的解决方案.我对国际化很新.请帮忙.
我为问这个感到难过,因为它被问了很多次:
http://askbot.org/en/question/8948/weve-edited-djangopo-files-but-translations-do-not-work-why/
我想要英语(默认)和斯洛文尼亚语。我的设置是这样的:
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
)
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Europe/Belgrade'
USE_I18N = True
USE_L10N = True
USE_TZ = True
from django.utils.translation import ugettext_lazy as _
LANGUAGES = (
('si', _('Slovenian')),
('en-us', _('English')),
)
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
)
Run Code Online (Sandbox Code Playgroud)
网址.py:
urlpatterns = i18n_patterns('',
url(r'^', include('analytics.urls')),
url(r'^login', RedirectView.as_view(url='/admin/login', permanent=False)),
url(r'^admin/', include(admin.site.urls)),
)
Run Code Online (Sandbox Code Playgroud)
模板:
<div class="time_range">{% trans "Time range:" %}</div>
Run Code Online (Sandbox Code Playgroud)
我将消息编译为 .po 文件,现在根据文档,人们希望它开始工作。但对我来说没有运气。如果我访问带有 /si/ 前缀的 url,我仍然会看到英文字符串。
我无法强制 django 翻译字符串,从请求中选择的语言是正确的,但我没有翻译的字符串。
\n\n也许这里可能有问题:当我运行 shell 时,返回的值language_code与我的不相等settings.py
gettext = lambda s: s\nUSE_I18N = True\nUSE_L10N = True\nLANGUAGE_CODE = \'en\'\n\nLANGUAGES = (\n (\'cs\', gettext(\'Czech\')),\n (\'en\', gettext(\'English\')),\n)\n\n>>> from django.utils import translation\n>>> \n>>> translation.get_language()\n\'en-us\'\n>>> from django.conf import settings\n>>> settings.LANGUAGE_CODE\n\'en\'\nRun Code Online (Sandbox Code Playgroud)\n\n我的消息文件位于locale/cs/LC_MESSAGES/django.{mo,po}\ni 中,其中包含以下内容(翻译后的周短名称缩写):
msgid "Mo Tu We Th Fr Sa Su"\nmsgstr "Po \xc3\x9at St \xc4\x8ct P\xc3\xa1 So Ne"\nRun Code Online (Sandbox Code Playgroud)\n\n看来,当我得到正确的值“cs”时
\n\nprint get_language() \n\'cs\'\nRun Code Online (Sandbox Code Playgroud)\n\n下一行是ugettext
ugettext(\'Mo Tu We Th Fr Sa Su\')\n\'Mo Tu We Th …Run Code Online (Sandbox Code Playgroud) django ×13
python ×7
translation ×4
django-admin ×3
django-i18n ×2
django-cms ×1
localization ×1