为什么没有“欧洲英语”语言环境?


93

en_DK.UTF-8在安装新系统时,我曾经使用过古怪的语言环境,因为即使我不在丹麦,这也会(大致)产生我想要的语言环境结果。

  • 测量指标
  • 合理的日期和时间格式,但英文的日期和月份名称
    • 24小时制
    • 工作周从星期一开始
    • 数值日期(至少类似于)ISO格式,yyyy-mm-dd
    • 非正式日期是dd / mm,反之亦然
  • A4纸尺寸
  • 欧元货币
  • 英文系统消息

las,Ubuntu和Debian似乎不再支持en_DK语言环境。我一直认为应该有一些类似en_EU“欧洲英语”的词。

我工作过的每个地方都有这样的要求-该组织的官方语言是英语,但我们希望欧洲大陆默认其他条件。

我想我不是第一个认为“位置不可知”的英语区域设置将使我个人和工作单位受益的人。那么为什么不存在它,我在哪里寻找进一步的讨论和理由呢?

...还是我应该提出建议?给谁?


1
我敢肯定,这在StackExchange网络上的某个地方是个好问题,但这并不是真正的编程问题,不是吗?

1
你让我感到困惑。丹麦一直没有采取欧元据我所知,两者Debian的测试版本和不稳定仍然有en_DK区域(与丹麦克朗/ KR货币)
斯特凡Chazelas

1
实际上,我只是忍受货币汇率错误的事实。我确实并不需要该功能,但是出于完整性考虑,它是问题中要包含的内容之一。这个en_DK地区是一个奇怪的好奇心。它起源于何处?为什么其他国家没有随机的英语语言环境?丹麦几乎不会说英语的人比例异常高。
2013年

5
@Jeach:谁会失去控制?什么呢 那是一件坏事?为什么主权国家是一个好国,和/或对此唯一可接受的利益相关者?北美的西班牙语设置听起来与我的情况相当相似。我敢肯定会有需求。而且,尽管现实世界的需求将是标准化机构的明智要求,但我也看不出为什么应该排除Cree方案。
Tripleee 2013年

2
我很同情,但我也感到很有趣,您在用特定于两个或三个国家(例如en_US,也许是en_CA)的拼写来拼写“ organization”,而不是大多数讲英语的人在国际上会使用的拼写。真正的解决方案,恕我直言,是针对不同的上下文有单独的设置。例如,当我住在美国时,我更喜欢使用普通的英语和标准尺寸,但使用美国的纸张尺寸。但是,美国人称其奇数球测量值为“英语”这一事实的确增加了困惑-数十年来,英语一直在使用公制,而且他们的许多单位与美国有所不同。
Michael Scheper 2014年

Answers:


13

(a)一个称为Unicode Common Locale Data Repository的实体似乎是处理语言环境的地方。glibc Wiki指示它们将遵循CLDR

(b)他们的语言环境被称为“ en_150”,似乎旨在执行您想要的操作。我不确定glibc是否已实现它。还有一个类似于en_BE的语言环境,与en_150相同,只是它具有BE的区域覆盖范围而不是全球范围。



有趣的是,但我已经export LC_TIME=en_150.UTF-8在Xubuntu 14.04 LTS上尝试过(和en_BE),它显示bash: warning: setlocale: LC_TIME: cannot change locale (en_150.UTF-8): No such file or directory
baptx

79

en_IE.UTF-8 英语(爱尔兰)语言环境满足您的所有要求:

  • 测量指标—
  • 24小时制-
  • 工作周从星期一开始- 是的
  • 数字日期(至少类似于)ISO格式,yyyy-mm-dd- ,在此语言环境中dd/mm/yy。但这似乎已经足够接近您的习惯了
  • 非正式日期是dd / mm,不是反之—
  • A4纸张大小–
  • 欧元-
  • 英文系统消息-

尽管我在阿姆斯特丹,但实际上我正在使用此语言环境,因为我不知道任何英语(巴勒斯坦)语言环境。

顺便说一句。选择ga_IE.UTF-8爱尔兰(爱尔兰)语言环境时不要犯错误,因为它是爱尔兰盖尔语。


1
啊,好老的爱尔兰人!很棒的发现。

3
我接受此答案,因为它可以完全满足我的要求。我仍然想找到一个指示,指出过去是否曾经提出过“通用英语”语言环境,以及/或者应该将这种提议发送到何处。这个问题的库标准化过程部分是我最初将其发布到PSE的原因,但是我不知道它是否适合那里(或* SE网络中的其他任何地方)。
Tripleee 2013年

@tripleee:唯一想到的就是Windows 98泛欧洲版本,该版本为英语,但具有欧洲语言环境并支持欧洲字符。我还没有听说过创建正式的泛欧语言环境的任何尝试。
vartec

我输入了命令“ sudo update-locale LANG = en_IE.UTF-8 LC_MESSAGES = POSIX”,重启后,当您用Thunderbird回复电子邮件时,它将使用标准的dd / mm / yy而不是yyyy-mm-dd(我尝试使用Ubuntu 14.04和Thunderbird 31.1.2)。
baptx 2014年

通用的英语语言环境可能需要考虑成千上万的分隔符。是的,所有(母语)英语使用者(我认为?)都使用逗号(但我想说),但是.即使写英语,许多欧洲人也使用句号()。我开始确信,小数部分的撇号'(由瑞士人使用).将是一个不错的选择。它可以在csv文件中工作,我不知道任何'用于小数的地方。
亚伦·麦克戴德

9

en_DK语言环境除了名称之外,与丹麦实际上没有任何关系。它最初是由想要与此处要求相同的人创建的-欧洲英语使用者的合理默认设置。名称“ en_DK”有点像个玩笑-当时所有的语言环境名称都由语言代码和国家/地区代码组成(在第二个位置没有大洲代码或其他任何内容),并且出于任何原因选择丹麦作为占位符国家/地区代码。(...自那时以来,可能已经引起了一个以上的神秘人士研究丹麦第一语言是英语的人口比例。:))


5
您是否有异想天开的DK来源?(我同意这是那里唯一具有合理设置的语言环境...)
Celada

1
同意这个答案至少将从传闻中受益,以便进一步研究。但是,已经感谢您的花絮。
三胞胎


1
唯一的问题是它使用DKK作为货币。
艾伦·西利亚克

4

这就是为什么对不同的事物使用不同的语言环境的原因。

就我而言,我将en_GB和sv_SE混合使用以获得所需的信息,它看起来像这样:

$> locale
LANG=en_GB.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC=sv_SE.utf8
LC_TIME=sv_SE.utf8
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY=sv_SE.utf8
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER=sv_SE.utf8
LC_NAME=sv_SE.UTF-8
LC_ADDRESS=sv_SE.UTF-8
LC_TELEPHONE=sv_SE.UTF-8
LC_MEASUREMENT=sv_SE.utf8
LC_IDENTIFICATION=sv_SE.UTF-8
LC_ALL=

但是您可能会用dk_DK替换sv_SE。

要获得€,请使用LC_MONETARY = en_IE.UTF-8

然后,我将配置保存为〜/ .profile中的大量导出文件

export LC_MONETARY="en_IE.UTF-8"

这将使您有机会从不同的领域中选择“正确的”事物。


实际上,我不会替换sv_SEdk_DK-就像我在问题中所说的那样,我选择丹麦语设置是因为它们巧合地并有些混乱地提供了我想要的功能,即使我没有理由也不想在我的设置中有任何特定于丹麦的内容,实际上,这就是我要避免的事情。与此类似,无论您身在何处,sv_SE都(在某种程度上)有意义LC_TIME,因为与许多其他语言环境不同,瑞典按标准使用ISO日期。
2015年

3

实际上,我相信有一个比en_IE更适合您要求的语言环境。这是非官方的,但是是en_SE.UTF-8。这是指向语言环境文件的链接。

它基本上复制了sv-SE,它可以为您提供所需的一切(尽管我没有仔细检查),但可以为您提供英语系统消息,菜单等。我以前使用过它,并且在尽管文件顶部的注释框中有警告,但还是要练习。

安装:

  1. 下载,以便可以通过以下方式访问区域设置文件 /usr/share/i18n/locales/en_SE
  2. sudo localedef -i en_SE -f UTF-8 en_SE.UTF-8
  3. 添加到/var/lib/locales/supported.d/local行中en_SE.UTF-8 UTF-8(根据发行版可能有所不同; Debian Squeeze / 6.0似乎很满意/etc/locale.gen
  4. sudo locale-gen
  5. 将您的系统或帐户的默认语言环境设置为en_SE.UTF-8(例如,通过/etc/default/locale类似Debian的系统)
  6. 重新启动或注销然后再重新启动,以激活新的语言环境

6
但是瑞典没有采用欧元。
mouviciel 2013年

@mouviciel爱尔兰吗?
CVn


1
此外,这还有一个明显的缺点(以及en_DK),对于不在该特定国家/地区居住的人来说,这是绝对不明显的解决方法。您可能会争辩说,en_IE也没有完全通过该(附加)要求。但是至少可以合理地对问题进行推理,并得出足够合理的结论(尽管我个人并没有基于对爱尔兰工作方式的多种错误假设得出结论)。
13年

1
另外,当您ssh访问远程系统时,语言环境也会随您一起旅行,如果您的语言环境也未安装在远程系统上,您将收到各种烦人的警告。
2013年

1

我用 en_IE@euro ISO-8859-15

$ export LC_MONETARY= "en_IE@euro ISO-8859-15" 

...但是我不确定测量的大小,考虑使用nl_NL.UTF-8nl_BE.UTF-8,我唯一遇到的问题是,一旦我允许使用此类库,其他应用程序可能最终将其用作本地lib的参考,然后再次开始下载应用程序和荷兰甚至德国的服务。

昨晚winetricks驱使我无所适从,vcrun6即使更改了locale-gen删除德语lib的任何提示后,它仍然继续下载德语版本的redistributablec++,最终还是手动完成了,完全通过用酒启动exe来完成。

令人难以置信的是,我又在同一问题上再次出现。这次是APT,比利时本地仓库正致力于编辑我的语言环境配置,这不能因为我编辑了权限,所以我只收到错误投诉:

Fetched 207 kB in 0s (1381 kB/s)
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en",
    LC_ALL = (unset),
    LC_TIME = "nl_BE.UTF-8",
    LC_MONETARY = "en_IE@euro ISO-8859-15",
    LC_ADDRESS = "nl_BE.UTF-8",
    LC_TELEPHONE = "nl_BE.UTF-8",
    LC_MESSAGES = "en_IE.UTF-8",
    LC_NAME = "en_IE.UTF-8",
    LC_MEASUREMENT = "nl_BE.UTF-8",
    LC_IDENTIFICATION = "en_GB.UTF-8",
    LC_NUMERIC = "nl_BE.UTF-8",
    LC_PAPER = "en_IE.UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
locale: Cannot set LC_ALL to default locale: No such file or directory 

没有妥协,全有或全无..唯一的其他解决方案是更改回购,但我永远不会完全没有麻烦,因为键盘是AZERTY,而且根据法律,它只会做比利时荷兰语的法语....:' (


这听起来很奇怪。该LC_MONETARYLC_MEASUREMENT设置肯定不应该影响到消息目录语言。
Tripleee

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.