我搜索了几个线程和错误报告,但找不到解决方案。
我将Django项目的语言环境更改为pt-br
,但没有任何区别。我排除了所有输入字段和输出以本地化日期和数字,特别是DECIMAL_SEPARATOR
和THOUSAND_SEPARATOR
,包括在管理API中。但是那里的日期继续显示为yyyy-mm-dd
和小数分隔符“,”在输入时会产生错误。
我做了我发现的所有事情:更改了设置,添加了本地化中间件类,启用了USE_I18N和USE_L10N,尝试手动强制setlocale等等。以下是我的settings.py的一瞥:
LANGUAGE_CODE = 'pt-br'
USE_I18N = True
USE_L10N = True
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.transaction.TransactionMiddleware',
)
DATE_FORMAT = 'd/m/Y'
SHORT_DATE_FORMAT = 'd/m/Y'
DATE_INPUT_FORMATS = ('%d/%m/%Y', '%d/%m/%y', '%Y-%m-%d')
DECIMAL_SEPARATOR = ','
THOUSAND_SEPARATOR = '.'
我在巴西葡萄牙语Windows上运行的Python控制台是否输出了这个奇怪的结果?
>>> locale.setlocale(locale.LC_ALL, ('pt_BR', 'cp1252'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python25\lib\locale.py", line 478, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
我忘记尝试的任何想法?
答案 0 :(得分:1)
Windows使用不同的区域设置ID。以下内容应该有效(从Microsoft's site上的表格中获得):
In [15]: locale.setlocale(locale.LC_ALL, 'Portuguese_Brazil')
Out[15]: 'Portuguese_Brazil.1252'
答案 1 :(得分:1)
根据Django Track,如果INPUT_FORMATS
设置为USE_L10N
,则会忽略True
设置。
答案 2 :(得分:0)
也许有点OT,但我想在网络翻译上添加我的观点。
我强烈建议您使用Bablic。这是一种完全客户端的翻译方法。它们跟踪您网站上显示的字符串,构建“字典”,并通知您新的或未翻译的文本。它们还可以与基于云的翻译提供程序集成,以便即使是新提交的内容也可以立即翻译,而无需您跟踪或更新服务器端代码或配置。
我喜欢它,你不需要做整个收集字符串 - > send-mo-file-to-translators-&gt; compile-&gt; deploy-&gt; debug-&gt; repeat。而作为一个网络开发者,这个解决方案在我的最终没有摩擦。
答案 3 :(得分:0)
在某些情况下,在服务器上未启用,您需要运行此命令以启用区域设置(在我的服务器Ubuntu示例中)
/images/user
然后运行
if ($_POST['submit']) {
$title = $_POST['title'];
$deadline = $_POST['deadline'];
$content = $_POST['content'];
$logoname = basename($_FILES["fileToUpload"]["logoname"]; // <-- Make sure your form is ready to submit an file
// Update below as per your need.
$target = 'images/users/' . $logoname;
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target);
$sql_blog = "INSERT INTO blog (title, deadline, content, logoname) VALUES ('$title', '$deadline', '$content', '$logoname')";
$query_blog = mysqli_query($dbcon, $sql_blog);
echo "<script>alert('Your inquiry has been posted')</script>";
}