标签: locale

启动具有特定区域设置的应用

更改设备的区域设置是在设置中完成的,无法通过应用程序AFAIK完成.我知道如何强制我自己的应用程序到特定的区域设置,例如:

http://www.tutorialforandroid.com/2009/01/force-localize-application-on-android.html

所以现在问我的问题.我可以以编程方式强制执行不属于我的活动吗?

我可以想象两种可能的方法:

  1. 在用于启动活动的Intent中指定区域设置.
  2. 访问和操作正在运行的活动的配置(与我可以修改自己的活动配置的方式相同).

有什么想法吗?可能吗?这合理吗?我猜2.会更直接,但需要某种许可(例如修改后的atcitiy必须允许它在清单文件中).但我会满足于1.或类似的.

我想要的是能够以不同的语言查看某些应用程序,而不是更改系统区域设置.例如Android Market,只显示一种语言的评论.现在想不起其他事情.

在文档中找不到很多关于Locale的内容,有什么不可能.但希望一些未记录的功能可能会启用此:)

android locale

7
推荐指数
1
解决办法
2856
查看次数

如何在delphi中检测多语言项目的系统语言?

我需要翻译其他语言的程序,实际上我有3种语言的相同程序(英语,西班牙语,葡萄牙语),但我翻译,重新编译,我有3个单独的可执行文件.并添加更多语言,保持链接,添加新功能让我发疯.

所以现在我决定保留一个可执行文件和一个外部语言文件,所以添加新语言不需要重新编译,只需用文本编辑器编辑语言文件,一切正常.

我想将所有语言保存在一个外部文件中.喜欢international.lang

[portuguese]
greeting="Bem-vindo"

[spanish]
greeting="Ben venido"
Run Code Online (Sandbox Code Playgroud)

如果文件international.lang不存在,或者您的语言不在文件中,默认情况下程序将以英文启动,没有错误.就像大多数基于资源的多语言程序一样.

那么问题是,如何在delphi中检测Windows语言?对我的方法有什么想法吗?有没有办法以编程方式替换对话框上的所有字幕?

ps:我正在使用delphi7,我找不到任何好的免费组件.

delphi multilingual locale translation

7
推荐指数
1
解决办法
8263
查看次数

考虑区域设置的排序列表(瑞典排序)

显然PostgreSQL 8.4和Ubuntu 10.04无法处理为瑞典字母排序W和V的更新方式.也就是说,它仍然将它们命名为相同的字母(瑞典订购的旧定义):

  • VB
  • 厕所
  • VD

它应该是(瑞典订购的新定义):

  • VB
  • VD
  • 厕所

我需要为我正在构建的Python/Django网站正确订购.我已经尝试了各种方法来使用*values_list*来命令从Django QuerySet创建的元组列表.但由于它是瑞典语,ä,ä和ö字母需要正确订购.现在我有一种或另一种方式都不是两种方式..

list_of_tuples = [(u'Wa', 1), (u'Vb',2), (u'Wc',3), (u'Vd',4), (u'Öa',5), (u'äa',6), (u'Åa',7)]

print '########## Ordering One ##############'
ordered_list_one = sorted(list_of_tuples, key=lambda t: tuple(t[0].lower()))
for item in ordered_list_one:
    print item[0]

print '########## Ordering Two ##############'
locale.setlocale(locale.LC_ALL, "sv_SE.utf8")
list_of_names = [u'Wa', u'Vb', u'Wc', u'Vd', u'Öa', u'äa', u'Åa']
ordered_list_two = sorted(list_of_names, cmp=locale.strcoll)
for item in ordered_list_two:
    print item
Run Code Online (Sandbox Code Playgroud)

这些例子给出了:

########## Ordering One ##############
Vb
Vd
Wa
Wc
äa
Åa
Öa
########## …
Run Code Online (Sandbox Code Playgroud)

python django postgresql locale

7
推荐指数
1
解决办法
751
查看次数

如何根据用户区域设置格式化数字和日期?

我需要一种方法来根据用户的区域设置自动格式化Date和Number对象.

到目前为止,我一直在使用toLocaleString()日期功能.对于数字,toLocaleString()也可以使用,但正如您在我准备的jsFiddle中所看到的,浏览器之间的结果差异很大.在我的Windows机器上使用英语(美国)语言环境,我得到了这个:

  • IE9:15,000.00
  • Firefox:15,000
  • Chrome:15000

在Chrome中,似乎toLocaleString()对数字根本不起作用.除了这种方法,我还尝试过:

  • 要使用MicrosoftAjax.js库localeFormat()函数,但无论我在PC上设置哪个区域(通过使用"区域和语言"对话框),日期和数字仍然以美国格式编码.
  • 使用像Globalize这样的库.虽然它们确实提供格式化功能,但它们无法自动检测用户的语言环境.

因此,总结一下:如何自动设置数字和日期格式以尊重用户浏览网页的区域设置,以适用于所有主流浏览器(IE,Firefox,Chrome)的方式?

javascript locale internationalization

7
推荐指数
1
解决办法
7698
查看次数

java.text.ParseException:无法解析的日期(德语,乌克兰语)

我需要用11种不同的语言解析日期.到目前为止,只有两个给我带来麻烦:德国和乌克兰.

package com.example;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class TestDate {

    private static SimpleDateFormat DATE_SDF;

    public static void main(String[] args) {
        // German
        DATE_SDF = new SimpleDateFormat("dd MMM yyyy", Locale.GERMAN);
        DATE_SDF.setLenient(false);
        String[] germanDate = {"11 Jan 1970", "11 Feb 1970", "11 Mär 1970", 
                "11 Apr 1970", "11 Mai 1970", "11 Jun 1970",
                "11 Jul 1970", "11 Aug 1970", "11 Sep 1970", 
                "11 Okt 1970", "11 Nov 1970", "11 Dez 1970"};
        for (String germanDateIterator: germanDate) {
            try …
Run Code Online (Sandbox Code Playgroud)

java locale date date-parsing

7
推荐指数
1
解决办法
1763
查看次数

如何使用SimpleDateFormat格式化句子中的西班牙语月份?

这是我的代码:

/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;
import java.text.SimpleDateFormat;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        SimpleDateFormat date = new SimpleDateFormat("dd-MMM-yyyy", new Locale("es","ar"));
        System.out.println(date.format(new Date(2014-1900,0,1)));
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码返回,

01-ene-2014
Run Code Online (Sandbox Code Playgroud)

但是,月份应该是句子,即Ene

任何人都可以帮助我如何01-Ene-2014不使用子串?

java locale simpledateformat

7
推荐指数
1
解决办法
3479
查看次数

无法解释的希腊日期 - SimpleDateFormat

我试图读取一个代表希腊日期时间的字符串(如"28Μαρτίου2014,14:00")使用SimpleDateFormat,但它会引发java.text.ParseException: Unparseable date: "28 ??????? 2014, 14:00"错误.

这是一个示例代码:

Locale locale = new Locale("el-GR");
SimpleDateFormat formatter = new SimpleDateFormat("dd MMMM yyyy, HH:mm", locale);
try {
     sDate = (Date) formatter.parse("28 ??????? 2014, 14:00");
 } catch (ParseException ex) {
     ex.printStackTrace();
 }
Run Code Online (Sandbox Code Playgroud)

我也试过locales el和el_GR,但没有运气.

有什么建议?

java locale simpledateformat

7
推荐指数
1
解决办法
943
查看次数

从列表转换为R中的data.frame时,utf-8字符会丢失

我在Windows 7 64位上使用R 3.2.0和RStudio 0.98.1103.我的电脑的Windows"区域和语言设置"是英语(美国).

出于某种原因,下面的代码在文本"Koryčanynadpřehradou"中用"c"和"r"替换了我的捷克字符"č"和"ř",当我从网上读取utf-8编码的XML文件时,解析XML文件到列表,并将列表转换为data.frame.

library(XML)
url <- "http://hydrodata.info/chmi-h/cuahsi_1_1.asmx/GetSiteInfoObject?site=CHMI-H:1263&authToken="
doc <- xmlRoot(xmlTreeParse(url, getDTD=FALSE, useInternalNodes = TRUE))
infoList <- xmlToList(doc[[2]][[1]])
siteName <- infoList$siteName

#this still displays correctly "Kory?any nad p?ehradou"
print(siteName) 

#make a data.frame from the list item. I suspect here is the problem.
df <- data.frame(name=siteName, id=1)

#now the Czech characters are lost. I see only "Korycany nad prehradou"
View(df) 

write.csv(df,"test.csv")
#the test.csv file also contains "Korycany nad prehradou" 
#instead of "Kory?any nad p?ehradou"
Run Code Online (Sandbox Code Playgroud)

问题是什么?如何让R使用所有utf-8特殊字符正确显示我的data.frame并保存.csv文件而不会丢失"č"和"ř"捷克字符?

locale r utf-8 character-encoding dataframe

7
推荐指数
1
解决办法
4787
查看次数

设置Python语言环境不起作用

所以我一直在尝试设置Python语言环境.我想,因为我想以当地语言(使用strftime('%A'))使用工作日名称.但是目前工作日是用英语打印的,尽管我尝试过多种方式设置语言环境.我在带有Ubuntu Mate的RPi2上运行它.

我已经尝试过本主题中的解决方案在Windows上设置Python的语言环境的正确方法是什么?

我尝试将locale明确设置为nl_NL.utf8:

$> locale -a
$> python3
>>> import locale
>>> locale.setlocale(locale.LC_ALL,'nl_NL.utf-8')
Run Code Online (Sandbox Code Playgroud)

我也尝试设置一个空字符串,在最后一个答案中建议:

>>> locale.setlocale(locale.LC_ALL, '')
Run Code Online (Sandbox Code Playgroud)

在我尝试的两种情况下

>>> locale.getlocale()
Run Code Online (Sandbox Code Playgroud)

我知道了 nl_NL.utf8

但我仍然用英语获得工作日!除了上面的主题外,还没有在internetz上找到太多这方面的内容,我无法解决这个问题.


编辑:

我尝试了所有3个选项.第一个返回一个奇怪的结果:

~/Documenten$ python3
Python 3.4.3+ (default, Oct 14 2015, 16:03:50) 
[GCC 5.2.1 20151010] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import locale
>>> locale.getlocale(locale.LC_TIME)
(None, None)
>>> locale.setlocale(locale.LC_TIME, 'nl_NL.utf-8')
'nl_NL.utf-8'
>>> locale.getlocale(locale.LC_TIME)
('nl_NL', 'UTF-8')
>>> exit()
jeffrey@jeffrey-desktop:~/Documenten$ python3
Python 3.4.3+ (default, Oct 14 2015, 16:03:50) …
Run Code Online (Sandbox Code Playgroud)

python datetime locale

7
推荐指数
1
解决办法
4569
查看次数

如何检测Laravel 5中的语言偏好

我想通过获取浏览器推荐的语言来检测我的客户端语言.

例如,如果您在日本打开浏览器,它将为我提供当前用户打开的国家代码或国家/地区名称,如"en-jp"或"japan".

我尝试这个代码,但它似乎显示我之前选择的语言,默认情况下它是英语.

我设置了一个中间件,我需要排除api部分,因为我有一些路由器ping这个地址,路由器浏览器没有语言信息阻塞系统.

class BeforeMiddleware
{

/**
 * Handle an incoming request.
 *
 * @param  \Illuminate\Http\Request $request
 * @param  \Closure $next
 * @return mixed
 */

protected $except_urls = [
    'api/*'
];

public function handle($request, Closure $next)
{
    $langArr = array("en", "fr");
    if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
        $languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
    } else {
        $languages[0] = "en";
    }
    if (Session::has('locale')) {
        App::setLocale(Session::get('locale'));
    } else {
        if (in_array($languages[0], $langArr))
            App::setLocale($languages[0]);
    }
    return $next($request);
}


} /* end class */
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

locale laravel-5

7
推荐指数
3
解决办法
2万
查看次数