perl - 国家字表

标签 perl unicode internationalization character letters

如何(或在何处)按州/国籍获取国家字母用户?例如:例如:

  • Gernan 语言使用 öäüß(加上 ascii 字母)
  • 匈牙利语:áéíóöúüőű
  • 捷克语:áéíóúýčďěňřšťůž
  • 冰岛:áæéíðóöúýþ

等..

标记为 perl 因为将它用于脚本,但欢迎任何想法和/或引用。

  • LC_CTYPE 的语言环境定义文件没有帮助,因为它只是指向所有语言使用的通用 utf8-C_TYPE 的链接
  • \p{Latin} 涵盖扩展拉丁语 block 中的所有字符,因此不适用于给定的国家/地区。
  • 上面的例子是通过从我在网上找到的一些 Pangrams 中删除 Ascii 来完成的。
  • 是否可以通过 (perl) 脚本正确地完成此操作,或者唯一的方法是在网络上搜索一些描述给定国家/地区“官方”字母表的“文档”?

最佳答案

因为

  • 字符用于创建给定语言的书面表示
  • 并且语言本身是编纂的
  • 每种语言都需要它的“自己的”字符,这些字符允许编写该语言。

经过一些搜索和浏览 unicode.org 我发现我的定义很模糊

If you search the web for "pangram" - each author perfectly knows, what characters belongs to his language.

被称为:语言所需的最少字符数Learn more in CLDR .该定义包含一个部分 Exemplar Characters:

The exemplar character sets contain the commonly used letters for a given modern form of a language.

因此,为了获得这些字符,下载给定语言的主 XML 文件就足够了,例如:

并提取:/ldml/characters/exemplarCharacters,例如这样的:

冰岛语

<exemplarCharacters>[a á b d ð e é f g h i í j k l m n o ó p r s t u ú v x y ý þ æ ö]</exemplarCharacters>

斯洛伐克语

<exemplarCharacters>[a á ä b c č d ď e é f g h {ch} i í j k l ĺ ľ m n ň o ó ô p q r ŕ s š t ť u ú v w x y ý z ž]</exemplarCharacters>

匈牙利语

<exemplarCharacters>[a á b c {cs} {ccs} d {dz} {ddz} {dzs} {ddzs} e é f g {gy} {ggy} h i í j k l {ly} {lly} m n {ny} {nny} o ó ö ő p r s {sz} {ssz} t {ty} {tty} u ú ü ű v z {zs} {zzs}]</exemplarCharacters>

正是我所需要的。也许这对其他一些人也有帮助。

编辑

现在存在 https://metacpan.org/pod/Locale::CLDR包含所有需要信息的模块(以及更多来自 CLDR 的信息)

关于perl - 国家字表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29968395/

相关文章:

localization - gettext 如何处理 a/an 或 d'/de?

perl - XML::LibXSLT 无法在 Heroku 上安装

multithreading - Perl 错误与 Log::Log4perl::Appender::File

unicode - 不能引用未导出的名称 m.β

c++ - MBCS 到 UTF-8 C++

java - 请帮助解决我的 JSP 国际化问题

perl - url语言前缀的催化剂最佳方式?

sql - 如何在 SQL 准备语句中转义单引号和双引号?

perl - 在 Perl 中获取变量名称作为字符串

c# - c# 和 php 中的哈希值不相同