diff options
Diffstat (limited to 'files/zh-cn/web/javascript/reference/global_objects/intl')
12 files changed, 1688 insertions, 0 deletions
diff --git a/files/zh-cn/web/javascript/reference/global_objects/intl/collator/index.html b/files/zh-cn/web/javascript/reference/global_objects/intl/collator/index.html new file mode 100644 index 0000000000..640bb0b9e4 --- /dev/null +++ b/files/zh-cn/web/javascript/reference/global_objects/intl/collator/index.html @@ -0,0 +1,177 @@ +--- +title: Intl.Collator +slug: Web/JavaScript/Reference/Global_Objects/Intl/Collator +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/Collator +--- +<div>{{JSRef}}</div> + +<p><strong><code>Intl.Collator<font face="Open Sans, Arial, sans-serif"> </font></code></strong><code>是用于语言敏感字符串比较的 collators构造函数。</code></p> + +<div>{{EmbedInteractiveExample("pages/js/intl-collator.html")}}</div> + + + +<h2 id="语法">语法</h2> + +<pre class="syntaxbox"><code>new Intl.Collator([<var>locales</var>[, <var>options</var>]]) +Intl.Collator.call(<var>this</var>[, <var>locales</var>[, <var>options</var>]])</code></pre> + +<h3 id="参数">参数</h3> + +<dl> + <dt><code>locales</code></dt> + <dd> + <p>可选. 缩写语言代码 (BCP 47 language tag, 例如: cmn-Hans-CN) 的字符串或者这些字符串组成的数组. 关于参数 locales 的一般形式和解释请参见{{jsxref("Global_Objects/Intl", "Intl page", "#Locale_identification_and_negotiation", 1)}}. 下面的这些 Unicode 扩展键也是被允许的:</p> + + <dl> + <dt><code>co</code></dt> + <dd>某些区域设置的变体归类。 可能的值包括:“big5han”,“dict”,“direct”,“ducet”,“gb2312”,“phonebk”,“phonetic”,“pinyin”,“reformed”,“searchjl”,“stroke” “,”unihan“。值“<code>standard</code>” 和 “<code>search</code>” 被忽略; 它们被 options 属性用法替换(详见下文)。</dd> + <dt><code>kn</code></dt> + <dd>是否应使用数字对照,使得 “1”<“2”<“10”。 可能的值为 “true” 和 “false”。 此选项可以通过 options 属性或通过 Unicode 扩展 key 设置; 如果两者都提供,options 属性优先。</dd> + <dt><code>kf</code></dt> + <dd><code>首先排序大写或者小写。可能的值为 “upper”,“lower” 或 “false”(使用区域设置的默认值)。 </code> 此选项可以通过 options 属性或通过 Unicode 扩展 key 设置; 如果两者都提供,options 属性优先。</dd> + </dl> + </dd> + <dt><code>options</code></dt> + <dd> + <p>可选. 包含一些或所有的下面属性的对象:</p> + + <dl> + <dt><code>localeMatcher</code></dt> + <dd>使用的 local 的匹配算法. 可能的值有 "lookup" 和 "best fit"; 默认值是 <code>"best fit"</code>. 有关此选项的信息, 请参见{{jsxref("Global_Objects/Intl", "Intl page", "#Locale_negotiation", 1)}}.</dd> + <dt><code>usage</code></dt> + <dd>比较是用于排序还是用于搜索匹配的字符串。 可能的值为 “sort” 和 “search”; 默认为 “sort”。</dd> + <dt><code>sensitivity</code></dt> + <dd> + <p>字符串中的哪些差异应导致结果值为非零(non-zero)。 可能的值有:</p> + + <ul> + <li><code>"base"</code>: 只有字母不同的字母比较不相等。例子: <code>a ≠ b</code>, <code>a = á</code>, <code>a = A。</code></li> + <li><code>"accent"</code>: 只有不同的基本字母或重音符号和其他变音符号的字符串比较为不相等。 例如: <code>a ≠ b</code>, <code>a ≠ á</code>, <code>a = A。</code></li> + <li><code>"case"</code>: 只有不同的基本字母或大小写的字符串比较不相等。 Examples: <code>a ≠ b</code>, <code>a = á</code>, <code>a ≠ A。</code></li> + <li><code>"variant"</code>: 字符串的字母,口音和其他变音符号、或不同大小写比较不相等。 也可以考虑其他差异。例如: <code>a ≠ b</code>, <code>a ≠ á</code>, <code>a ≠ A</code>.</li> + </ul> + + <p><code>"variant" 的默认值使用<font face="Open Sans, Arial, sans-serif"> </font></code><code>"sort"</code>; 它的 locale 依赖于使用 <code>"search"</code>.</p> + </dd> + <dt><code>ignorePunctuation</code></dt> + <dd>是否应忽略标点。 可能的值为 true 和 false; 默认值为 false。</dd> + <dt><code>numeric</code></dt> + <dd>是否应使用数字对照,使得 “1”<“2”<“10”。 可能的值为 “true” 和 “false”。默认值为 “false” 。 此选项可以通过 options 属性或通过 Unicode 扩展 key 设置; 如果两者都提供,options 属性优先。实现不需要支持此属性。</dd> + <dt><code>caseFirst</code></dt> + <dd><code>首先排序大写或者小写。可能的值为 “upper”,“lower” 或 “false”(使用区域设置的默认值)。 </code> 此选项可以通过 options 属性或通过 Unicode 扩展 key 设置; 如果两者都提供,options 属性优先。实现不需要支持此属性。</dd> + </dl> + </dd> +</dl> + +<h2 id="描述">描述</h2> + +<p><code>Intl.Collator</code> 类有一下属性和方法</p> + +<h3 id="属性">属性</h3> + +<dl> + <dt>{{jsxref("Collator.prototype", "Intl.Collator.prototype")}}</dt> + <dd>允许向所有对象添加属性。</dd> +</dl> + +<h3 id="方法">方法</h3> + +<dl> + <dt>{{jsxref("Collator.supportedLocalesOf", "Intl.Collator.supportedLocalesOf()")}}</dt> + <dd>返回包含所支持的所提供语言环境的数组的数组,而不必回退到运行时的默认语言环境。</dd> +</dl> + +<h2 id="Collator_实例"><code>Collator 实例</code></h2> + +<h3 id="属性_2">属性</h3> + +<p><code>Collator 实例从其原型继承以下属性:</code></p> + +<div>{{page('en-US/docs/Web/JavaScript/Reference/Global_Objects/Collator/prototype', 'Properties')}}</div> + +<h3 id="方法_2">方法</h3> + +<h3 id="Collator_实例从其原型继承以下方法:">Collator 实例从其原型继承以下方法:</h3> + +<div>{{page('en-US/docs/Web/JavaScript/Reference/Global_Objects/Collator/prototype', 'Methods')}}</div> + +<h2 id="例子">例子</h2> + +<h3 id="基本用法">基本用法</h3> + +<p>以下示例演示在另一个之前,之后或同级别发生的字符串的不同潜在结果:</p> + +<pre class="brush: js">console.log(new Intl.Collator().compare('a', 'c')); // → a negative value +console.log(new Intl.Collator().compare('c', 'a')); // → a positive value +console.log(new Intl.Collator().compare('a', 'a')); // → 0 +</pre> + +<p>请注意,上述代码中显示的结果可能会因浏览器和浏览器版本而异。 这是因为值是实现特定的。 也就是说,规范仅需要前后值为负和正。</p> + +<h3 id="使用_locales">使用 <code>locales</code></h3> + +<p>{{jsxref("Collator.prototype.compare()")}} 提供的结果在不同语言之间有所不同。为了获得用于您的应用程序的用户界面的语言格式,请确保设定了语言(可能还有一些回退语言)参数:</p> + +<pre class="brush: js">// 德语中, ä 使用 a 的排序 +console.log(new Intl.Collator('de').compare('ä', 'z')); +// → 一个负值 + +// 瑞典语中, ä 在 z 的后面 +console.log(new Intl.Collator('sv').compare('ä', 'z')); +// → 一个正值 +</pre> + +<h3 id="使用_options">使用 <code>options</code></h3> + +<p>{{jsxref("Collator.prototype.compare()")}} 提供的结果可以使用 options 参数自定义:</p> + +<pre class="brush: js">// 德语中, ä 使用 a 作为基本字母 +console.log(new Intl.Collator('de', { sensitivity: 'base' }).compare('ä', 'a')); +// → 0 + +// 瑞典语中, ä 和 a 是单独的基本字母 +console.log(new Intl.Collator('sv', { sensitivity: 'base' }).compare('ä', 'a')); +// → 一个正值 +</pre> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('ES Int 1.0', '#sec-10.1', 'Intl.Collator')}}</td> + <td>{{Spec2('ES Int 1.0')}}</td> + <td>Initial definition.</td> + </tr> + <tr> + <td>{{SpecName('ES Int 2.0', '#sec-10.1', 'Intl.Collator')}}</td> + <td>{{Spec2('ES Int 2.0')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES Int Draft', '#collator-objects', 'Intl.Collator')}}</td> + <td>{{Spec2('ES Int Draft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + +<div> +<div> + + +<p>{{Compat("javascript.builtins.Intl.Collator")}}</p> +</div> +</div> + +<h2 id="参见">参见</h2> + +<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl', 'See_also')}}</div> diff --git a/files/zh-cn/web/javascript/reference/global_objects/intl/datetimeformat/index.html b/files/zh-cn/web/javascript/reference/global_objects/intl/datetimeformat/index.html new file mode 100644 index 0000000000..ef43816d44 --- /dev/null +++ b/files/zh-cn/web/javascript/reference/global_objects/intl/datetimeformat/index.html @@ -0,0 +1,286 @@ +--- +title: Intl.DateTimeFormat +slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat +--- +<div>{{JSRef}}</div> + +<div><strong><code>Intl.DateTimeFormat</code></strong>是根据语言来格式化日期和时间的对象的构造器。</div> + +<div>{{EmbedInteractiveExample("pages/js/intl-datetimeformat.html")}}</div> + +<p class="hidden">交互示例的源代码存储在 GitHub 资源库。如果你愿意分布交互示例,请复制<a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a>,并向我们发送一个pull请求。</p> + +<h2 id="语法">语法</h2> + +<pre class="syntaxbox"><code>new Intl.DateTimeFormat([<var>locales</var>[, <var>options</var>]]) +Intl.DateTimeFormat.call(<var>this</var>[, <var>locales</var>[, <var>options</var>]])</code></pre> + +<h3 id="参数">参数</h3> + +<dl> + <dt><code>locales</code></dt> + <dd> + <p>可选.缩写语言代码(BCP 47 language tag,例如:cmn-Hans-CN)的字符串或者这些字符串组成的数组. 关于参数locales的一般形式和解释请参见{{jsxref("Global_Objects/Intl", "Intl page", "#Locale_identification_and_negotiation", 1)}}. 下面的这些Unicode扩展键也是被允许的:</p> + + <p>译者注:下面这两种扩展的使用方式是language[-scripts][-region]-u-nu-* 和 language[-scripts][-region]-u-ca-* ,例如:zh-u-nu-hanidec(表示中文十进制数字) 和 zh-u-ca-chinese(表示中国日历,比如壬辰年冬月8日) ,也可以 nu 和 ca 组合使用 比如 使用 zh-u-ca-chinese-nu-hanidec 格式化Date.now()的返回值类似于"丙申年冬月九日"</p> + + <p><code>nu</code></p> + + <dl> + <dd>编号系统. 可能的值包括: <code>"arab"</code>, <code>"arabext"</code>, <code>"bali"</code>, <code>"beng"</code>, <code>"deva"</code>, <code>"fullwide"</code>, <code>"gujr"</code>, <code>"guru"</code>, <code>"hanidec"</code>, <code>"khmr"</code>, <code>"knda"</code>, <code>"laoo"</code>, <code>"latn"</code>, <code>"limb"</code>, <code>"mlym"</code>, <code>"mong"</code>, <code>"mymr"</code>, <code>"orya"</code>, <code>"tamldec"</code>, <code>"telu"</code>, <code>"thai"</code>, <code>"tibt"</code>.</dd> + <dt><code>ca</code></dt> + <dd>日历. 可能的值包括: <code>"buddhist"</code>, <code>"chinese"</code>, <code>"coptic"</code>, <code>"ethioaa"</code>, <code>"ethiopic"</code>, <code>"gregory"</code>, <code>"hebrew"</code>, <code>"indian"</code>, <code>"islamic"</code>, <code>"islamicc"</code>, <code>"iso8601"</code>, <code>"japanese"</code>, <code>"persian"</code>, <code>"roc"</code>.</dd> + </dl> + </dd> + <dt><code>options</code></dt> + <dd> + <p>可选. 包含一些或所有的下面属性的类:</p> + + <dl> + <dt><code>localeMatcher</code></dt> + <dd>使用的local的匹配算法. 可能的值有"lookup"和"best fit"; 默认值是 <code>"best fit"</code>. 有关此选项的信息, 请参见{{jsxref("Global_Objects/Intl", "Intl page", "#Locale_negotiation", 1)}}.</dd> + <dt><code>timeZone</code></dt> + <dd>使用的时区. 这唯一的值实现必须被标准世界时间(UTC)所识别。默认值是运行时的默认时区. <a href="https://www.iana.org/time-zones">IANA time zone database</a>中的时区名称可能会被识别, 例如<code>"Asia/Shanghai"</code>, <code>"Asia/Kolkata"</code>, <code>"America/New_York"</code>.</dd> + <dt><code>hour12</code></dt> + <dd>是否使用12小时时间制(而不是24小时的时间). 可能的值是<code>true</code> 或 <code>false</code>; 默认值是根据locale来自动决定的(译者注:中国地区的默认值为true).</dd> + <dt><code>formatMatcher</code></dt> + <dd><code>format的匹配算法.可能的值有"basic"和"best fit";默认值是"best fit".有关此属性使用的信息,参见以下段落。</code></dd> + <dd> + <p>日期时间插件被格式化输出时可以使用的属性集合描述。实现需要支持是以下子集中的其中一个(译者注:当weekday,year等这些属性一个也不使用的时候,在cmn-Hans-CN中相当于使用集合year, month, day, hour, minute, second并且它们的值都是numeric):</p> + </dd> + </dl> + + <ul> + <li><code>weekday</code>, <code>year</code>, <code>month</code>, <code>day</code>, <code>hour</code>, <code>minute</code>, <code>second</code></li> + <li><code>weekday</code>, <code>year</code>, <code>month</code>, <code>day</code></li> + <li><code>year</code>, <code>month</code>, <code>day</code></li> + <li><code>year</code>, <code>month</code></li> + <li><code>month</code>, <code>day</code></li> + <li><code>hour</code>, <code>minute</code>, <code>second</code></li> + <li><code>hour</code>, <code>minute</code></li> + </ul> + + <p>实现可能支持其他的子集,并通过对所有可用的子集对比找到最匹配的子集。通过 formatMatcher属性可以设置两种算法用于对比和选择子集: <a href="http://www.ecma-international.org/ecma-402/1.0/#BasicFormatMatcher">完全匹配<code>"basic"算法</code> </a> 和 一种依赖于“best fit”算法的实现.</p> + + <dl> + <dt><code>weekday</code></dt> + <dd>工作日的展现方式.可能的值有 <code>"narrow"</code>, <code>"short"</code>, <code>"long"</code>.</dd> + <dt><code>era</code></dt> + <dd>纪元的展现方式. 可能的值有 <code>"narrow"</code>, <code>"short"</code>, <code>"long"</code>.</dd> + <dt><code>year</code></dt> + <dd>年的展现方式. 可能的值有 <code>"numeric"</code>, <code>"2-digit"</code>.</dd> + <dt><code>month</code></dt> + <dd>月的展现方式. 可能的值有 <code>"numeric"</code>, <code>"2-digit"</code>, <code>"narrow"</code>, <code>"short"</code>, <code>"long"</code>.</dd> + <dt><code>day</code></dt> + <dd>日的展现方式.可能的值有 <code>"numeric"</code>, <code>"2-digit"</code>.</dd> + <dt><code>hour</code></dt> + <dd>时的展现方式.可能的值有 <code>"numeric"</code>, <code>"2-digit"</code>.</dd> + <dt><code>minute</code></dt> + <dd>分钟的展现方式.可能的值有 <code>"numeric"</code>, <code>"2-digit"</code>.</dd> + <dt><code>second</code></dt> + <dd>秒的展现方式. 可能的值有<code>"numeric"</code>, <code>"2-digit"</code>.</dd> + <dt><code>timeZoneName</code></dt> + <dd>时区名称的展现方式.可能的值有 <code>"short"</code>, <code>"long"</code>.</dd> + </dl> + + <p class="noinclude">每个日期时间组件属性的默认值都是{{jsxref("undefined")}},但是若所有的组件属性都是{{jsxref("undefined")}},那么<code>year</code>, <code>month</code>, and <code>day</code> 的值就都被认为是"<code>numeric</code>".</p> + </dd> +</dl> + +<h2 id="描述">描述</h2> + +<h3 id="属性">属性</h3> + +<dl> + <dt>{{jsxref("DateTimeFormat.prototype", "Intl.DateTimeFormat.prototype")}}</dt> + <dd>允许将属性添加到所有对象上。</dd> +</dl> + +<h3 id="方法">方法</h3> + +<dl> + <dt>{{jsxref("DateTimeFormat.supportedLocalesOf", "Intl.DateTimeFormat.supportedLocalesOf()")}}</dt> + <dd>Returns an array containing those of the provided locales that are supported without having to fall back to the runtime's default locale.</dd> +</dl> + +<h2 id="DateTimeFormat_实例"><code>DateTimeFormat</code> 实例</h2> + +<h3 id="属性_2">属性</h3> + +<p><code>DateTimeFormat实例集成以下原型的属性</code>:</p> + +<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/prototype', 'Properties')}}</div> + +<h3 id="方法_2">方法</h3> + +<p><code>DateTimeFormat实例集成以下原型的方法</code>:</p> + +<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/prototype', 'Methods')}}</div> + +<h2 id="实例">实例</h2> + +<h3 id="使用_DateTimeFormat">使用 <code>DateTimeFormat</code></h3> + +<p>不指定locale时,DateTimeFormat使用默认的locale 和 默认的 options</p> + +<pre class="brush: js">var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); + +//参数未填时使用默认的locale和默认的时区 +console.log(new Intl.DateTimeFormat().format(date)); +//如果是在洛杉矶那么值为 → "12/19/2012" +</pre> + +<h3 id="使用locales">使用<code>locales</code></h3> + +<p>这个例子显示了本地化日期和时间格式的一些变化。为了获得用于您的应用程序的用户界面的语言格式,请确保使用locales参数确保指定语言(可能还有一些回退语言):</p> + +<pre class="brush: js">var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); + +// 下面是假定的所在时区 +// 洛杉矶(America/Los_Angeles for the US) + +// 美式英语(US English) 使用 month-day-year 格式 +console.log(new Intl.DateTimeFormat('en-US').format(date)); +// → "12/19/2012" + +// 英式英语(British English) 使用 day-month-year 格式 +console.log(new Intl.DateTimeFormat('en-GB').format(date)); +// → "20/12/2012" + +// 韩国使用 year-month-day 格式 +console.log(new Intl.DateTimeFormat('ko-KR').format(date)); +// → "2012. 12. 20." + +//大部分阿拉伯国家使用阿拉伯字母(real Arabic digits) +console.log(new Intl.DateTimeFormat('ar-EG').format(date)); +// → "<span dir="rtl">٢٠/١٢/٢٠١٢</span>" + +//在日本,应用可能想要使用日本日历, +//2012 是平成24年(平成是是日本天皇明仁的年号,由1989年1月8日起开始计算直至现在) +console.log(new Intl.DateTimeFormat('ja-JP-u-ca-japanese').format(date)); +// → "平成24/12/20" + +//当请求一个语言可能不支持,如巴厘(ban),若有备用的语言印尼语(id), +//那么将使用印尼语(id) +console.log(new Intl.DateTimeFormat(['ban', 'id']).format(date)); +// → "20/12/2012" +</pre> + +<h3 id="使用options">使用<code>options</code></h3> + +<p>可以使用 <code>options </code>参数来自定义 <font face="Consolas, Liberation Mono, Courier, monospace">日期时间格式化</font>方法返回的字符串。</p> + +<pre class="brush: js">var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); + +//请求参数(options)中包含参数星期(weekday),并且该参数的值为长类型(long) +var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }; +console.log(new Intl.DateTimeFormat('de-DE', options).format(date)); +// → "Donnerstag, 20. Dezember 2012" + +// 一个应用使用 世界标准时间(UTC),并且UTC使用短名字(short)展示 +options.timeZone = 'UTC'; +options.timeZoneName = 'short';//若不写这一行那么仍然显示的是世界标准时间;但是GMT三个字母不会显示 +console.log(new Intl.DateTimeFormat('en-US', options).format(date)); +// → "Thursday, December 20, 2012, GMT" + +// 有时你想变得更精确 +options = { + hour: 'numeric', minute: 'numeric', second: 'numeric', + timeZoneName: 'short' +}; +console.log(new Intl.DateTimeFormat('en-AU', options).format(date)); +// → "2:00:00 pm AEDT" + +// 使用24小时制 +options = { + year: 'numeric', month: 'numeric', day: 'numeric', + hour: 'numeric', minute: 'numeric', second: 'numeric', + hour12: false +}; +console.log(date.toLocaleString('en-US', options)); +// → "12/19/2012, 19:00:00" +</pre> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">规范版本</th> + <th scope="col">规范状态</th> + <th scope="col">注解</th> + </tr> + <tr> + <td>{{SpecName('ES Int 1.0', '#sec-12.1', 'Intl.DateTimeFormat')}}</td> + <td>{{Spec2('ES Int 1.0')}}</td> + <td>Initial definition.</td> + </tr> + <tr> + <td>{{SpecName('ES Int 2.0', '#sec-12.1', 'Intl.DateTimeFormat')}}</td> + <td>{{Spec2('ES Int 2.0')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES Int Draft', '#datetimeformat-objects', 'Intl.DateTimeFormat')}}</td> + <td>{{Spec2('ES Int Draft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatChrome("24")}}</td> + <td>{{CompatGeckoDesktop("29")}}</td> + <td>{{CompatIE("11")}}</td> + <td>{{CompatOpera("15")}}</td> + <td>{{CompatSafari("10")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome("26")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatSafari("10")}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="相关链接">相关链接</h2> + +<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl', 'See_also')}}</div> diff --git a/files/zh-cn/web/javascript/reference/global_objects/intl/datetimeformat/prototype/index.html b/files/zh-cn/web/javascript/reference/global_objects/intl/datetimeformat/prototype/index.html new file mode 100644 index 0000000000..d8cb843c33 --- /dev/null +++ b/files/zh-cn/web/javascript/reference/global_objects/intl/datetimeformat/prototype/index.html @@ -0,0 +1,119 @@ +--- +title: Intl.DateTimeFormat.prototype +slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat +--- +<div>{{JSRef}}</div> + +<p><strong><code>Intl.DateTimeFormat.prototype</code></strong>表示 {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}}构造函数的原型对象。</p> + +<p>{{js_property_attributes(0, 0, 0)}} </p> + +<h2 id="描述">描述</h2> + +<p>参见 {{jsxref("DateTimeFormat")}}来看<code>Intl.DateTimeFormat实例的一个描述。</code></p> + +<p>{{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}} 实例继承自<code>Intl.DateTimeFormat.prototype</code>. 对原型对象的修改都继承自{{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}}实例。</p> + +<h2 id="属性">属性</h2> + +<dl> + <dt><code>Intl.DateTimeFormat.prototype.constructor</code></dt> + <dd>请参考 {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}}.</dd> + <dt>{{jsxref("DateTimeFormat.format", "Intl.DateTimeFormat.prototype.format")}}</dt> + <dd>Getter; 返回一个{{jsxref("DateTimeFormat", "DateTimeFormat")}}对象的根据locale和格式化参数格式化日期的函数。</dd> +</dl> + +<h2 id="方法">方法</h2> + +<dl> + <dt>{{jsxref("DateTimeFormat.formatToParts", "Intl.DateTimeFormat.prototype.formatToParts()")}}</dt> + <dd>Returns an {{jsxref("Array")}} of objects representing the date string in parts that can be used for custom locale-aware formatting.</dd> + <dt>{{jsxref("DateTimeFormat.resolvedOptions", "Intl.DateTimeFormat.prototype.resolvedOptions()")}}</dt> + <dd>返回一个新的属性对象,反射出在对象初始化过程中计算出的locale和options的各个值。</dd> +</dl> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">规范版本</th> + <th scope="col">规范状态</th> + <th scope="col">注解</th> + </tr> + <tr> + <td>{{SpecName('ES Int 1.0', '#sec-12.2.1', 'Intl.DateTimeFormat.prototype')}}</td> + <td>{{Spec2('ES Int 1.0')}}</td> + <td>初始定义</td> + </tr> + <tr> + <td>{{SpecName('ES Int 2.0', '#sec-12.2.1', 'Intl.DateTimeFormat.prototype')}}</td> + <td>{{Spec2('ES Int 2.0')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES Int Draft', '#sec-Intl.DateTimeFormat.prototype', 'Intl.DateTimeFormat.prototype')}}</td> + <td>{{Spec2('ES Int Draft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatChrome("24")}}</td> + <td>{{CompatGeckoDesktop("29")}}</td> + <td>{{CompatIE("11")}}</td> + <td>{{CompatOpera("15")}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome("26")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="参见">参见</h2> + +<ul> + <li>{{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}}</li> +</ul> diff --git a/files/zh-cn/web/javascript/reference/global_objects/intl/displaynames/index.html b/files/zh-cn/web/javascript/reference/global_objects/intl/displaynames/index.html new file mode 100644 index 0000000000..06b7cf130b --- /dev/null +++ b/files/zh-cn/web/javascript/reference/global_objects/intl/displaynames/index.html @@ -0,0 +1,28 @@ +--- +title: Intl.DisplayNames +slug: Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames +--- +<p>{{JSRef}} <strong><code>Intl.DisplayNames</code></strong> 是一个对象构造器,它支持语言、区域和脚本显示名称的一致翻译。</p> + +<h2 id="语法">语法</h2> + +<pre><code>new Intl.DisplayNames([<var>locales</var>[, <var>options</var>]]) </code> +</pre> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">规范版本</th> + <th scope="col">规范状态</th> + <th scope="col">注解</th> + </tr> + <tr> + <td><a href="https://tc39.es/proposal-intl-displaynames/#sec-intl-displaynames-constructor">Intl.DisplayNames Constructor</a></td> + <td>Stage 3</td> + <td></td> + </tr> + </tbody> +</table> diff --git a/files/zh-cn/web/javascript/reference/global_objects/intl/getcanonicallocales/index.html b/files/zh-cn/web/javascript/reference/global_objects/intl/getcanonicallocales/index.html new file mode 100644 index 0000000000..78ee477634 --- /dev/null +++ b/files/zh-cn/web/javascript/reference/global_objects/intl/getcanonicallocales/index.html @@ -0,0 +1,72 @@ +--- +title: Intl.getCanonicalLocales() +slug: Web/JavaScript/Reference/Global_Objects/Intl/getCanonicalLocales +tags: + - 区域语言代码 + - 去重 +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/getCanonicalLocales +--- +<div>{{JSRef}}</div> + +<p><strong><code>Intl.getCanonicalLocales()</code></strong> 方法返回一个数组,数组包含规范的区域语言代码,重复的元素将会被去除,每一个元素都会被验证为格式有效的区域语言代码。</p> + +<div>{{EmbedInteractiveExample("pages/js/intl-getcanonicallocales.html")}}</div> + + + +<h2 id="Syntax">Syntax</h2> + +<pre class="syntaxbox">Intl.getCanonicalLocales(locales)</pre> + +<h3 id="参数">参数</h3> + +<dl> + <dt><code>locales</code></dt> + <dd>想要规范化的字符串数组。</dd> +</dl> + +<h3 id="Return_value">Return value</h3> + +<p>一个包含规范区域语言代码的数组。</p> + +<h2 id="例子">例子</h2> + +<pre class="brush: js">Intl.getCanonicalLocales('EN-US'); // ["en-US"] +Intl.getCanonicalLocales(['EN-US', 'Fr']); // ["en-US", "fr"] + +Intl.getCanonicalLocales('EN_US'); +// RangeError:'EN_US' is not a structurally valid language tag +</pre> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('ES Int Draft', '#sec-intl.getcanonicallocales', 'Intl.getCanonicalLocales')}}</td> + <td>{{Spec2('ES Int Draft')}}</td> + <td>Initial definition</td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容">浏览器兼容</h2> + +<div> + + +<p>{{Compat("javascript.builtins.Intl.getCanonicalLocales")}}</p> +</div> + +<h2 id="参见">参见</h2> + +<ul> + <li>{{jsxref("NumberFormat.supportedLocalesOf", "Intl.NumberFormat.supportedLocalesOf()")}}</li> + <li>{{jsxref("DateTimeFormat.supportedLocalesOf", "Intl.DateTimeFormat.supportedLocalesOf()")}}</li> + <li>{{jsxref("Collator.supportedLocalesOf", "Intl.Collator.supportedLocalesOf()")}}</li> +</ul> diff --git a/files/zh-cn/web/javascript/reference/global_objects/intl/index.html b/files/zh-cn/web/javascript/reference/global_objects/intl/index.html new file mode 100644 index 0000000000..165a332206 --- /dev/null +++ b/files/zh-cn/web/javascript/reference/global_objects/intl/index.html @@ -0,0 +1,132 @@ +--- +title: Intl +slug: Web/JavaScript/Reference/Global_Objects/Intl +tags: + - JavaScript + - 国际化 +translation_of: Web/JavaScript/Reference/Global_Objects/Intl +--- +<div>{{JSRef}}</div> + +<p class="summary"><strong><code>Intl</code></strong> 对象是 ECMAScript 国际化 API 的一个命名空间,它提供了精确的字符串对比、数字格式化,和日期时间格式化。{{jsxref("Collator")}},{{jsxref("NumberFormat")}} 和 {{jsxref("DateTimeFormat")}} 对象的构造函数是 <code>Intl</code> 对象的属性。本页文档内容包括了这些属性,以及国际化使用的构造器和其他语言的方法等常见的功能。</p> + +<h2 id="属性">属性</h2> + +<dl> + <dt>{{jsxref("Global_Objects/Collator", "Intl.Collator")}}</dt> + <dd>collators的构造函数,用于启用对语言敏感的字符串比较的对象。</dd> + <dt>{{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}}</dt> + <dd>用于启用语言敏感的日期和时间格式的对象的构造函数。</dd> + <dt>{{jsxref("Global_Objects/ListFormat", "Intl.ListFormat")}}</dt> + <dd>Constructor for objects that enable language-sensitive list formatting.</dd> + <dt>{{jsxref("Global_Objects/NumberFormat", "Intl.NumberFormat")}}</dt> + <dd>用于启用语言敏感数字格式的对象的构造函数。</dd> + <dt>{{jsxref("Global_Objects/PluralRules", "Intl.PluralRules")}}</dt> + <dd>用于启用多种敏感格式和多种语言语言规则的对象的构造函数。</dd> + <dt>{{jsxref("Global_Objects/RelativeTimeFormat", "Intl.RelativeTimeFormat")}}</dt> + <dd>Constructor for objects that enable language-sensitive relative time formatting.</dd> +</dl> + +<h2 id="方法">方法</h2> + +<dl> + <dt>{{jsxref("Intl.getCanonicalLocales()")}}</dt> + <dd>返回规范区域名称(canonical locale name)。</dd> +</dl> + +<h2 id="语言区域识别和判定">语言区域识别和判定</h2> + +<p>国际化的构造函数和其他构造函数的几个语言敏感的方法(可参考下方的{{anch("See_also", "参见")}})一样,使用同样的模式来识别语言区域和确定使用哪一种语言格式:他们都接收 <code>locales</code> 和 <code>options</code> 参数,使用 <code>options.localeMatcher</code> 属性指定的一个算法来对比应用请求的和支持的语言区域,来确定使用哪一个语言区域。</p> + +<h3 id="locales_参数"><code>locales</code> 参数</h3> + +<p><code>locales</code> 参数必须是一个 <a href="http://tools.ietf.org/html/rfc5646">BCP 47 语言标记</a>的字符串,或者是一个包括多个语言标记的数组。如果 <code>locales</code> 参数未提供或者是 undefined,便会使用运行时默认的 locale。</p> + +<p>一个 BCP 47 语言标记代表了一种语言或者区域(两者没有很大的区别)。在其最常见的格式中,它以这样的顺序囊括了这些内容:语言代码,脚本代码,和国家代码,全部由连字符分隔开。例如:</p> + +<ul> + <li><code>"hi"</code>:印地语 (primary language)。</li> + <li><code>"de-AT"</code>:<code>在奥地利使用的德语 (primary language with country code)。</code></li> + <li><code>"zh-Hans-CN"</code>:在中国使用的简体中文 (primary language with script and country codes)。</li> +</ul> + +<p>在 BCP 47 中表示语言,脚本,国家(区域)和变体(少用)的语言子标记含义可以在<a href="http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry"> IANA 语言子标记注册</a>中找到。</p> + +<p>BCP 47 也支持扩展,其中一个和 JavaScript 国际化方法相关的是:"u"(Unicode)扩展。它可以用于请求一个自定义区域特定行为的 {{jsxref("Collator")}},{{jsxref("NumberFormat")}},或者 {{jsxref("DateTimeFormat")}} 对象。例如:</p> + +<ul> + <li><code>"de-DE-u-co-phonebk"</code>:使用德语的电话簿排序变体,这会把元音变音扩展成字符对:ä → ae, ö → oe, ü → ue。</li> + <li><code>"th-TH-u-nu-thai"</code>:在数字格式中使用泰语的数值表示(๐, ๑, ๒, ๓, ๔, ๕, ๖, ๗, ๘, ๙)</li> + <li><code>"ja-JP-u-ca-japanese":在日期和时间格式化中使用日本的日历表示方式,所以 2013 会表示为平成 25。</code></li> + <li><code>"en-GB-u-ca-islamic"</code>: use British English with the Islamic (Hijri) calendar, where the Gregorian date 14 October, 2017 is the Hijri date 24 Muharram, 1439.</li> +</ul> + +<h3 id="语言区域判定">语言区域判定</h3> + +<p><code>locales</code> 参数,在除去所有的 Unicode 扩展之后,会被转化成来自应用的优先请求。运行时拿它和可用的语言区域做对比然后选择出最合适的一个。有两种匹配算法:“查找” 匹配遵循 <a href="http://tools.ietf.org/html/rfc5646">BCP 47</a> 中指定的查找算法;“最佳命中” 匹配器会让运行时至少提供一个语言区域,但合适请求的结果可能会比查找算法的要多。如果应用没有提供一个 locales 参数,或者运行时没有一个匹配请求的语言区域,那么会使用运行时默认的语言区域。匹配器可以使用 <code>options</code> 参数的一个属性来进行选择(见下方)。</p> + +<p>如果选中的语言标记有一个 Unicode 扩展子字符串,这个扩展会用于自定义构造对象或者方法的行为。每一个构造函数或者方法仅支持 Unicode 扩展定义的 key 的一个子集,和依赖于语言标记的支持的值。例如,<code>“co”</code>这个 key(collation)只在 {{jsxref("Collator")}} 中支持,它的值 “phonebk” 只在德语中支持。</p> + +<h3 id="options_参数"><code>options</code> 参数</h3> + +<p><code>options</code> 参数必须是一个对象,其属性值在不同的构造函数和方法中会有所变化。如果 <code>options</code> 参数未提供或者为 undefined,所有的属性值则使用默认的。</p> + +<p>所有语言敏感的构造函数和方法都支持的一个属性是:<code>localeMatcher</code> 属性,它的值必须是字符串 “lookup” 或者 “best fit”,用于选择上边描述的语言区域匹配算法。</p> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('ES Int 1.0', '#sec-8', 'Intl')}}</td> + <td>{{Spec2('ES Int 1.0')}}</td> + <td>Initial definition.</td> + </tr> + <tr> + <td>{{SpecName('ES Int 2.0', '#sec-8', 'Intl')}}</td> + <td>{{Spec2('ES Int 2.0')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES Int Draft', '#intl-object', 'Intl')}}</td> + <td>{{Spec2('ES Int Draft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + +<div class="hidden">The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</div> + +<p>{{Compat("javascript.builtins.Intl")}}</p> + +<h2 id="参见">参见</h2> + +<ul> + <li>介绍:<a href="http://norbertlindenberg.com/2012/12/ecmascript-internationalization-api/index.html">The ECMAScript Internationalization API</a></li> + <li>构造函数 + <ul> + <li>{{jsxref("Collator", "Intl.Collator")}}</li> + <li>{{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}}</li> + <li>{{jsxref("ListFormat", "Intl.ListFormat")}}</li> + <li>{{jsxref("NumberFormat", "Intl.NumberFormat")}}</li> + <li>{{jsxref("PluralRules", "Intl.PluralRules")}}</li> + <li>{{jsxref("RelativeTimeFormat", "Intl.RelativeTimeFormat")}}</li> + </ul> + </li> + <li>方法 + <ul> + <li>{{jsxref("String.prototype.localeCompare()")}}</li> + <li>{{jsxref("Number.prototype.toLocaleString()")}}</li> + <li>{{jsxref("Date.prototype.toLocaleString()")}}</li> + <li>{{jsxref("Date.prototype.toLocaleDateString()")}}</li> + <li>{{jsxref("Date.prototype.toLocaleTimeString()")}}</li> + </ul> + </li> +</ul> diff --git a/files/zh-cn/web/javascript/reference/global_objects/intl/listformat/index.html b/files/zh-cn/web/javascript/reference/global_objects/intl/listformat/index.html new file mode 100644 index 0000000000..c80d0bca89 --- /dev/null +++ b/files/zh-cn/web/javascript/reference/global_objects/intl/listformat/index.html @@ -0,0 +1,115 @@ +--- +title: Intl.ListFormat +slug: Web/JavaScript/Reference/Global_Objects/Intl/ListFormat +tags: + - Intl + - JavaScript + - ListFormat + - 列表格式化 +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/ListFormat +--- +<p>{{JSRef}}</p> + +<p><strong><code>Intl.ListFormat</code></strong> 是一个语言相关的列表格式化构造器。</p> + +<div>{{EmbedInteractiveExample("pages/js/intl-listformat.html")}}</div> + + + +<h2 id="语法">语法</h2> + +<pre><code>new Intl.ListFormat([<var>locales</var>[, <var>options</var>]]) +</code></pre> + +<h3 id="参数">参数</h3> + +<dl> + <dt><code>locales</code></dt> + <dd> + <p>可选的.。符合 BCP 47 语言标注的字符串或字符串数组。<code>locales</code> 参数的一般形式和相关解释,请参阅 {{jsxref("Global_Objects/Intl", "Intl page", "#Locale_identification_and_negotiation", 1)}}.</p> + </dd> + <dt><code>options</code></dt> + <dd>可选的。 拥有下面所列属性中任意几个或全部的对象: + <ul> + <li><code>localeMatcher</code><br> + 指定要使用的本地匹配算法。可选的值有<code>"lookup"</code> 和 <code>"best fit"</code>;默认情况下使用<code>"best fit"</code>。该参数的更多信息,请参考<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation" rel="nofollow"><code>Intl</code> page</a>.</li> + <li><code>type</code><br> + 消息输出的格式。可选的值有用于替代基于“且”关系列表的<code>"conjunction"</code> (默认值, 例如: <code>A, B, and C</code>), 或者用于替代基于“或”关系列表的 <code>"disjunction"</code>(例如: <code>A, B, or C</code>),以及用于替代带计量单位的值列表的<code>"unit"</code> (例如: <code>5 pounds, 12 ounces</code>).</li> + <li><code>style</code><br> + 被格式化消息的长度。可选值有:<code>"long"</code> (默认值,例如: <code>A, B, and C</code>)、<code>"short"</code> 或者 <code>"narrow"</code> (例如: <code>A, B, C</code>)。 当<code>style</code> 的值为<code>narrow时,</code>type 属性的值只能取值<code>unit。</code></li> + </ul> + </dd> +</dl> + +<h2 id="描述">描述</h2> + +<h3 id="属性">属性</h3> + +<dl> + <dt>{{jsxref("ListFormat.prototype", "Intl.ListFormat.prototype")}}</dt> + <dd>允许增加一个属性到列表中的所有对象。</dd> +</dl> + +<h3 id="方法">方法</h3> + +<dl> + <dt>{{jsxref("ListFormat.supportedLocalesOf", "Intl.ListFormat.supportedLocalesOf()")}}</dt> + <dd>返回一个包含指定的被支持区域设置的数组,没有时使用运行环境默认区域设置</dd> +</dl> + +<h2 id="示例">示例</h2> + +<h3 id="使用_format">使用 <code>format</code></h3> + +<p>下面的例子展示了用英语语言怎么去创建一个列表格式化器。</p> + +<pre class="brush: js">const list = ['Motorcycle', 'Bus', 'Car']; + + console.log(new Intl.ListFormat('en-GB', { style: 'long', type: 'conjunction' }).format(list)); +// > Motorcycle, Bus and Car + + console.log(new Intl.ListFormat('en-GB', { style: 'short', type: 'disjunction' }).format(list)); +// > Motorcycle, Bus or Car + + console.log(new Intl.ListFormat('en-GB', { style: 'narrow', type: 'unit' }).format(list)); +// > Motorcycle Bus Car +</pre> + +<h3 id="使用_formatToParts">使用 <code>formatToParts</code></h3> + +<p>下面的例子展示了如何创建一个返回被格式化部分的列表格式化器。</p> + +<pre class="brush: js">const list = ['Motorcycle', 'Bus', 'Car']; +console.log(new Intl.ListFormat('en-GB', { style: 'long', type: 'conjunction' }).formatToParts(list)); + +// > [ { "type": "element", "value": "Motorcycle" }, { "type": "literal", "value": ", " }, { "type": "element", "value": "Bus" }, { "type": "literal", "value": ", and " }, { "type": "element", "value": "Car" } ]; +</pre> + +<h2 id="说明">说明</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td><a href="https://github.com/tc39/proposal-intl-list-format/">Intl.ListFormat proposal</a></td> + <td>Stage 3</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="浏览器支持">浏览器支持</h2> + +<div> + + +<p>{{Compat("javascript.builtins.Intl.ListFormat")}}</p> +</div> + +<h2 id="参考地址">参考地址</h2> + +<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl', 'See_also')}}</div> diff --git a/files/zh-cn/web/javascript/reference/global_objects/intl/locale/index.html b/files/zh-cn/web/javascript/reference/global_objects/intl/locale/index.html new file mode 100644 index 0000000000..2714245ace --- /dev/null +++ b/files/zh-cn/web/javascript/reference/global_objects/intl/locale/index.html @@ -0,0 +1,105 @@ +--- +title: Intl.Locale +slug: Web/JavaScript/Reference/Global_Objects/Intl/Locale +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/Locale +--- +<div>{{JSRef}}</div> + +<p><strong><code>Intl.Locale</code></strong> 对象是 Intl 对象的标准内置属性,用于表示 Unicode 区域标识。</p> + +<div>{{EmbedInteractiveExample("pages/js/intl-locale.html")}}</div> + +<h2 id="描述">描述</h2> + +<p><code><strong>Intl.Locale</strong></code> 对象是为了更便捷地处理 Unicode 区域设置。Unicode 使用字符串作为区域识别标识。区域标识符由<em>语言标识符</em>和<em>扩展标记</em>组成。语言标识符是区域(locale)的核心,包含了语言、脚本和地域子标记(region subtags)。有关区域设置的其他信息体现在可选的扩展标记中。扩展标记保存有关区域设置方面的信息,例如日历类型、时钟类型和编号系统类型。</p> + +<p>传统上,Intl 接口像 Unicode 一样使用字符串来表示区域设置,这是一个简单而轻量且效果好的解决方案。但是,添加一个Locale 类可以更容易地解析和操作语言、脚本、区域以及扩展标记。</p> + +<h2 id="构造函数">构造函数</h2> + +<dl> + <dt>{{jsxref("Locale/Locale", "Intl.Locale()")}}</dt> + <dd>实例化一个 <code>Locale</code> 对象。</dd> +</dl> + +<h2 id="实例属性">实例属性</h2> + +<dl> + <dt><a href="/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/baseName"><code>Intl.Locale.prototype.baseName</code></a></dt> + <dd>Returns basic, core information about the <code>Locale</code> in the form of a substring of the complete data string.</dd> + <dt><a href="/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/calendar"><code>Intl.Locale.prototype.calendar</code></a></dt> + <dd>Returns the part of the <code>Locale</code> that indicates the Locale's calendar era.</dd> + <dt><a href="/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/caseFirst"><code>Intl.Locale.prototype.caseFirst</code></a></dt> + <dd>Returns whether case is taken into account for the locale's collation rules.</dd> + <dt><a href="/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/collation"><code>Intl.Locale.prototype.collation</code></a></dt> + <dd>Returns the collation type for the <code>Locale</code>, which is used to order strings according to the locale's rules.</dd> + <dt><a href="/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle"><code>Intl.Locale.prototype.hourCycle</code></a></dt> + <dd>Returns the time keeping format convention used by the locale.</dd> + <dt><a href="/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/language"><code>Intl.Locale.prototype.language</code></a></dt> + <dd>Returns the language associated with the locale.</dd> + <dt><a href="/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/numberingSystem"><code>Intl.Locale.prototype.numberingSystem</code></a></dt> + <dd>Returns the numeral system used by the locale.</dd> + <dt><a href="/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/numeric"><code>Intl.Locale.prototype.numeric</code></a></dt> + <dd>Returns whether the locale has special collation handling for numeric characters.</dd> + <dt><a href="/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/region"><code>Intl.Locale.prototype.region</code></a></dt> + <dd>Returns the region of the world (usually a country) associated with the locale.</dd> + <dt><a href="/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/script"><code>Intl.Locale.prototype.script</code></a></dt> + <dd>Returns the script used for writing the particular language used in the locale.</dd> +</dl> + +<h2 id="实例方法">实例方法</h2> + +<dl> + <dt><a href="/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/maximize"><code>Intl.Locale.prototype.maximize()</code></a></dt> + <dd>Gets the most likely values for the language, script, and region of the locale based on existing values.</dd> + <dt><a href="/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/minimize"><code>Intl.Locale.prototype.minimize()</code></a></dt> + <dd>Gets the most likely values for the language, script, and region of the locale based on existing values.</dd> + <dt><a href="/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/toString"><code>Intl.Locale.prototype.toString()</code></a></dt> + <dd>Returns the Locale's full locale identifier string.</dd> +</dl> + +<h2 id="范例">范例</h2> + +<h3 id="基本使用">基本使用</h3> + +<p>很简单,就是需要给{{jsxref("Locale/Locale", "Intl.Locale")}} 构造函数传入一个 locale 标识字符串作为参数:</p> + +<pre class="brush: js notranslate">let us = new Intl.Locale('zh-Hans-CN');</pre> + +<h3 id="使用配置实例化">使用配置实例化</h3> + +<p>构造函数支持传入 object 作为配置,object 中可包含多个配置属性。例如,设置 <code><a href="/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle">hourCycle</a></code> 属性,用于设置您所需要的小时周期类型:</p> + +<pre class="brush: js notranslate">let zh12hour = new Intl.Locale("zh-Hans-CN", {hourCycle: "h12"}); +console.log(zh12hour.hourCycle); // Prints "h12"</pre> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td><a href="https://tc39.github.io/proposal-intl-locale">Intl.Locale proposal</a></td> + <td>Stage 3</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + +<div> +<div class="hidden">本页面兼容性表的数据由结构化数据生成。如果你想提供数据,请转到<a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>并且向我们发推送(pull)请求。</div> + +<p>{{Compat("javascript.builtins.Intl.Locale")}}</p> +</div> + +<h2 id="参阅">参阅</h2> + +<ul> + <li> <a href="https://github.com/zbraniecki/Intl.js/tree/intllocale">The Intl.Locale Polyfill</a></li> +</ul> diff --git a/files/zh-cn/web/javascript/reference/global_objects/intl/numberformat/format/index.html b/files/zh-cn/web/javascript/reference/global_objects/intl/numberformat/format/index.html new file mode 100644 index 0000000000..4e481052b1 --- /dev/null +++ b/files/zh-cn/web/javascript/reference/global_objects/intl/numberformat/format/index.html @@ -0,0 +1,92 @@ +--- +title: Intl.NumberFormat.prototype.format +slug: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/format +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/format +--- +<div>{{JSRef}}</div> + +<p> <strong><code>Intl.NumberFormat.prototype.format</code></strong> 属性返回一个根据{{jsxref("NumberFormat")}}对象的语言环境和格式化选项,来格式化一个数字的getter函数。</p> + +<div>{{EmbedInteractiveExample("pages/js/intl-numberformat-prototype-format.html")}}</div> + + + +<h2 id="语法">语法</h2> + +<pre class="syntaxbox"><code><var>numberFormat</var>.format(<var>number</var>)</code></pre> + +<h3 id="参数">参数</h3> + +<dl> + <dt><code>number</code></dt> + <dd>要格式化的数值。</dd> +</dl> + +<h2 id="描述">描述</h2> + +<p>该函数返回一个根据{{jsxref("NumberFormat")}}对象的语言环境和格式化选项,来<code>format</code> 一个数字的函数。</p> + +<h2 id="示例">示例</h2> + +<h3 id="使用_format">使用 <code>format</code></h3> + +<p>使用 <code>format</code> 格式化一个单一的货币值, 以俄罗斯为例:</p> + +<pre class="brush: js">var options = { style: 'currency', currency: 'RUB' }; +var numberFormat = new Intl.NumberFormat('ru-RU', options); +console.log(numberFormat.format(654321.987)); +// → "654 321,99 руб." +</pre> + +<h3 id="使用_format_和_map">使用 <code>format</code> 和 <code>map</code></h3> + +<p>使用 <code>format</code> 返回的函数来格式化数组中的所有数字。注意,该函数绑定到所获得的{{jsxref("NumberFormat")}},因此它可以直接传递给{{jsxref("Array.prototype.map")}}。</p> + +<pre class="brush: js">var a = [123456.789, 987654.321, 456789.123]; +var numberFormat = new Intl.NumberFormat('es-ES'); +var formatted = a.map(numberFormat.format); +console.log(formatted.join('; ')); +// → "123.456,789; 987.654,321; 456.789,123" +</pre> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">规范</th> + <th scope="col">状态</th> + <th scope="col">注解</th> + </tr> + <tr> + <td>{{SpecName('ES Int 1.0', '#sec-11.3.2', 'Intl.NumberFormat.prototype.format')}}</td> + <td>{{Spec2('ES Int 1.0')}}</td> + <td>初始定义</td> + </tr> + <tr> + <td>{{SpecName('ES Int 2.0', '#sec-11.3.2', 'Intl.NumberFormat.prototype.format')}}</td> + <td>{{Spec2('ES Int 2.0')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES Int Draft', '#sec-Intl.NumberFormat.prototype.format', 'Intl.NumberFormat.prototype.format')}}</td> + <td>{{Spec2('ES Int Draft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + +<div> +<div class="hidden">The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>and send us a pull request.</div> + +<p>{{Compat("javascript.builtins.Intl.NumberFormat.format")}}</p> +</div> + +<h2 id="相关链接">相关链接</h2> + +<ul> + <li>{{jsxref("NumberFormat", "Intl.NumberFormat")}}</li> + <li>{{jsxref("Number.prototype.toLocaleString()")}}</li> +</ul> diff --git a/files/zh-cn/web/javascript/reference/global_objects/intl/numberformat/index.html b/files/zh-cn/web/javascript/reference/global_objects/intl/numberformat/index.html new file mode 100644 index 0000000000..51520c2b83 --- /dev/null +++ b/files/zh-cn/web/javascript/reference/global_objects/intl/numberformat/index.html @@ -0,0 +1,247 @@ +--- +title: Intl.NumberFormat +slug: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat +tags: + - Intl + - 国际化 +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat +--- +<div>{{JSRef}}</div> + +<p><strong><code>Intl.NumberFormat是对语言敏感的格式化数字类的构造器类</code></strong></p> + +<h2 id="语法">语法</h2> + +<pre class="syntaxbox"><code>new Intl.NumberFormat([<var>locales</var>[, <var>options</var>]]) +Intl.NumberFormat.call(<var>this</var>[, <var>locales</var>[, <var>options</var>]]) +</code></pre> + +<h3 id="参数">参数</h3> + +<dl> + <dt><code>locales</code></dt> + <dd> + <p>可选。缩写语言代码(BCP 47 language tag,例如: cmn-Hans-CN)的字符串或者这些字符串组成的数组. 关于参数 locales 的一般形式和解释请参见<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation" title="国际化的构造函数和其他构造函数的几个语言敏感的方法(可见See also)一样,使用同样的模式来识别语言区域和确定使用哪一种语言格式:他们都接收 locales 和 options 参数,使用 options.localeMatcher 属性指定的一个算法来对比应用请求的和支持的语言区域,来确定使用哪一个语言区域。">Intl page</a>. 下面的这些 Unicode 扩展键也是被允许的:</p> + + <p>译者注:下面扩展的使用方式是language[-scripts][-region]-u-nu-*,例如:zh-u-nu-hanidec(表示中文十进制数字) </p> + + <dl> + <dt><code>nu</code></dt> + <dd>要使用的编号系统。可能的值有: <code>"arab"</code>, <code>"arabext"</code>, <code>"bali"</code>, <code>"beng"</code>, <code>"deva"</code>, <code>"fullwide"</code>, <code>"gujr"</code>, <code>"guru"</code>, <code>"hanidec"(中文十进制数字)</code>, <code>"khmr"</code>, <code>"knda"</code>, <code>"laoo"</code>, <code>"latn"</code>, <code>"limb"</code>, <code>"mlym"</code>, <code>"mong"</code>, <code>"mymr"</code>, <code>"orya"</code>, <code>"tamldec"</code>, <code>"telu"</code>, <code>"thai"</code>, <code>"tibt"</code>.</dd> + </dl> + </dd> + <dt><code>options</code></dt> + <dd> + <p>可选. 包含一些或所有的下面属性的类:</p> + + <ul> + <li><code>“decimal”</code> 用于纯数字格式;</li> + <li><code>“currency”</code> 用于货币格式;</li> + <li><code>“percent”</code> 用于百分比格式;</li> + <li><code>“unit”</code> {{Experimental_inline}} 用于单位格式</li> + </ul> + + <dl> + <dt><code>localeMatcher</code></dt> + <dd>使用的 local 的匹配算法. 可能的值有 <code>"lookup</code> 和 <code>"best fit"</code>; 默认值是 <code>"best fit"</code>. 有关此选项更多的信息, 请参见 {{jsxref("Global_Objects/Intl", "Intl page", "#Locale_negotiation", 1)}}.</dd> + <dt><code>style</code></dt> + <dd>要使用的格式样式,默认为 “decimal”。</dd> + <dt><code>numberingSystem</code> {{Experimental_inline}}</dt> + <dd>编号系统。可能的值包括:"<code>arab</code>","<code>arabext</code>"," <code>bali</code>","<code>beng</code>","<code>deva</code>","<code>fullwide</code>"," <code>gujr</code>","<code>guru</code>","<code>hanidec</code>","<code>khmr</code>"," <code>knda</code>","<code>laoo</code>", "<code>latn</code>","<code>limb</code>","<code>mlym</code>"," <code>mong</code>","<code>mymr</code>","<code>orya</code>","<code>tamldec</code>"," <code>telu</code>","<code>thai</code>","<code>tibt</code>"。</dd> + <dt><code>unit</code>{{Experimental_inline}}</dt> + <dd><code>unit</code> 格式中使用的单位,可能的值为在 <a href="http://unicode.org/reports/tr35/tr35-general.html#Unit_Elements" rel="nofollow">UTS #35, Part 2, Section 6</a> 定义的核心单元标识符。已从<a href="https://github.com/unicode-org/cldr/blob/master/common/validity/unit.xml">完整列表</a>中选择了一个<a href="https://tc39.es/proposal-unified-intl-numberformat/section6/locales-currencies-tz_proposed_out.html#sec-issanctionedsimpleunitidentifier">单位子集</a>以用于ECMAScript。可以将成对的简单单位与 <code>“ -per-”</code> 连接以组成一个复合单位。没有默认值;如果 <code>style</code> 为 <code>“unit”</code>,必须提供<code>unit</code> 属性。</dd> + <dt><code>unitDisplay</code>{{Experimental_inline}}</dt> + <dd><code>unit</code> 格式化中使用的单位格式化样式,默认值为“ short”。</dd> + <dd> + <ul> + <li><code>“long”</code> (e.g., <code>16 litres</code>)</li> + <li><code>“short“</code> (e.g., <code>16 l</code>)</li> + <li><code>”narrow“</code> (e.g., <code>16l</code>)</li> + </ul> + </dd> + <dt><code>currency</code></dt> + <dd>在货币格式化中使用的货币符号. 可能的值是<em>ISO</em>的货币代码 (the ISO 4217 currency codes,) 例如 <code>"USD"</code> 表示美元, <code>"EUR"</code> 表示欧元, 或者 <code>"CNY"是人民币</code> — 更多请参考 <a href="http://www.currency-iso.org/en/home/tables/table-a1.html">Current currency & funds code list</a>。没有默认值,如果 <code>style</code> 是 <code>“currency”</code>,必须提 <code>currency</code> 属性.</dd> + <dt><code>currencyDisplay</code></dt> + <dd>如何在货币格式化中显示货币. 可能的值有 <code>"symbol"</code> 表示使用本地化的货币符号,例如 €, <code>"code"</code> 表示使用国际标准组织货币代码, <code>"name"</code> 表示使用本地化的货币名称,如 <code>"dollar"</code>; 默认值是 <code>"symbol"</code>.</dd> + <dt><code>useGrouping</code></dt> + <dd>是否使用分组分隔符,如千位分隔符或千/万/亿分隔符。可能的值是 true 和 false,默认值是 true。</dd> + </dl> + + <p>下面的属性分为两组:<code>minimumintegerdigits</code>,<code>minimumfractiondigits</code>,<code>maximumfractiondigits</code> 作为一组,<code>minimumsignificantdigits</code> 和 <code>maximumsignificantdigits</code> 作为一组。如果定义了第二组中的任意一个属性,则忽略第一组的设置.</p> + + <dl> + <dt><code>minimumIntegerDigits</code></dt> + <dd>使用的整数数字的最小数目.可能的值是从1到21,默认值是1.</dd> + <dt><code>minimumFractionDigits</code></dt> + <dd>使用的小数位数的最小数目.可能的值是从 0 到 20;默认为普通的数字和百分比格式为 0;默认为货币格式是由 <a href="http://www.currency-iso.org/en/home/tables/table-a1.html">ISO 4217 currency code list</a> 提供 (如果列表中没有提供则值为 2)。</dd> + <dt><code>maximumFractionDigits</code></dt> + <dd>使用的小数位数的最大数目。可能的值是从 0 到 20;纯数字格式的默认值是<code>minimumfractiondigits</code> 和 3 中大的那一个;货币格式默认值是<code>minimumfractiondigits</code> 和 <a href="http://www.currency-iso.org/en/home/tables/table-a1.html">ISO 4217 currency code list</a> 中大的那一个(如果列表中没有提供则值为2);百分比格式默认值是 <code>minimumfractiondigits</code> 和 0 中大的那一个。</dd> + <dt><code>minimumSignificantDigits</code></dt> + <dd>使用的有效数字的最小数目。可能的值是从1到21;默认值是1。</dd> + <dt><code>maximumSignificantDigits</code></dt> + <dd>使用的有效数字的最大数量。可能的值是从1到21;默认是 21.</dd> + <dt><code>notation</code>{{Experimental_inline}}</dt> + <dd>该号码应显示的格式,默认为 <code>“standard”</code>。 + <ul> + <li>"<code>standard</code>" 纯数字格式;</li> + <li>"<code>scientific</code>" 返回格式化数字的大小顺序;</li> + <li>"<code>engineering</code>" 当被三除时返回十的指数</li> + <li>"<code>compact</code>" 代表指数的字符串,默认使用 <code>“short”</code> 格式 + <ul> + <li>"<code>compactDisplay</code>" 仅在 <code>notation</code> 为 <code>“compact”</code> 时使用,采用 <code>“short”</code>(默认)或“<code>long</code>”</li> + </ul> + </li> + </ul> + </dd> + </dl> + </dd> +</dl> + +<h2 id="描述">描述</h2> + +<h3 id="属性">属性</h3> + +<dl> + <dt>{{jsxref("NumberFormat.prototype", "Intl.NumberFormat.prototype")}}</dt> + <dd>允许将属性添加到所有对象上。</dd> +</dl> + +<h3 id="方法">方法</h3> + +<dl> + <dt>{{jsxref("NumberFormat.supportedLocalesOf", "Intl.NumberFormat.supportedLocalesOf()")}}</dt> + <dd>返回一个数组包含的那些被提供的可以被支持的locales,运行时的默认的 locale 不会出现在该数组中.</dd> +</dl> + +<h2 id="NumberFormat_实例"><code>NumberFormat</code> 实例</h2> + +<h3 id="属性_2">属性</h3> + +<p><code>NumberFormat</code> 实例继承一下原型的属性:</p> + +<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/prototype', 'Properties')}}</div> + +<h3 id="方法_2">方法</h3> + +<p><code>NumberFormat</code> 实例继承一下原型的方法:</p> + +<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/prototype', 'Methods')}}</div> + +<h2 id="例子">例子</h2> + +<h3 id="基本用法">基本用法</h3> + +<p>在不指定locale的基本用法中, 一个使用默认locale和默认options的字符串被返回.</p> + +<pre class="brush: js">var number = 3500; + +console.log(new Intl.NumberFormat().format(number)); +// 如果在美国英语地区 → '3,500' +</pre> + +<h3 id="使用locales">使用<code>locales</code></h3> + +<p>这个例子显示了一些本地化的数字格式的一些变化。为了获得用于您的应用程序的用户界面的语言格式,请确保设定了语言(可能还有一些回退语言)参数:</p> + +<pre class="brush: js">var number = 123456.789; + +// 德语使用逗号作为小数点,使用.作为千位分隔符 +console.log(new Intl.NumberFormat('de-DE').format(number)); +// → 123.456,789 + +// 大多数阿拉伯语国家使用阿拉伯语数字 +console.log(new Intl.NumberFormat('ar-EG').format(number)); +// → ١٢٣٤٥٦٫٧٨٩ + +// India uses thousands/lakh/crore separators +console.log(new Intl.NumberFormat('en-IN').format(number)); +// → 1,23,456.789 + +// 通过编号系统中的nu扩展键请求, 例如<code>中文十进制数字</code> +console.log(new Intl.NumberFormat('zh-Hans-CN-u-nu-hanidec').format(number)); +// → 一二三,四五六.七八九 + +//当请求的语言不被支持,例如巴里,包含一个回滚语言印尼,这时候就会使用印尼语 +console.log(new Intl.NumberFormat(['ban', 'id']).format(number)); +// → 123.456,789 +</pre> + +<h3 id="可用的选项">可用的选项</h3> + +<p>可用的选项参数,返回的值可以被设置成想要的形式:</p> + +<pre class="brush: js">var number = 123456.789; + +// 请求一个货币格式 +console.log(new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(number)); +// → 123.456,79 € + +// the Japanese yen doesn't use a minor unit +console.log(new Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY' }).format(number)); +// → ¥123,457 + +// 只显示三个有效数字 +console.log(new Intl.NumberFormat('en-IN', { maximumSignificantDigits: 3 }).format(number)); +// → 1,23,000 + +</pre> + +<h3 id="Using_notation">Using <font face="consolas, Liberation Mono, courier, monospace">notation</font></h3> + +<pre><code>console.log(new Intl.NumberFormat('en-US', { notation: "scientific" }).format(987654321)); +// → 9.877E8 + +console.log(new Intl.NumberFormat('pt-PT', { notation: "scientific" }).format(987654321)); +// → 9,877E8 + +console.log(new Intl.NumberFormat('en-GB', { notation: "engineering" }).format(987654321)); +// → 987.654E6 + +console.log(new Intl.NumberFormat('de', { notation: "engineering" }).format(987654321)); +// → 987,654E6 + +console.log(new Intl.NumberFormat('zh-CN', { notation: "compact" }).format(987654321)); +// → 9.9亿 + +console.log(new Intl.NumberFormat('fr', { notation: "compact" , compactDisplay: "long" }).format(987654321)); +// → 988 millions + +console.log(new Intl.NumberFormat('en-GB', { notation: "compact" , compactDisplay: "short" }).format(987654321)); +// → 988M</code></pre> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">规范版本</th> + <th scope="col">规范状态</th> + <th scope="col">注解</th> + </tr> + <tr> + <td>{{SpecName('ES Int 1.0', '#sec-11.1', 'Intl.NumberFormat')}}</td> + <td>{{Spec2('ES Int 1.0')}}</td> + <td>初始定义</td> + </tr> + <tr> + <td>{{SpecName('ES Int 2.0', '#sec-11.1', 'Intl.NumberFormat')}}</td> + <td>{{Spec2('ES Int 2.0')}}</td> + <td></td> + </tr> + <tr> + <td>{{SpecName('ES Int Draft', '#numberformat-objects', 'Intl.NumberFormat')}}</td> + <td>{{Spec2('ES Int Draft')}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + +<div></div> + +<div id="compat-mobile">{{Compat("javascript.builtins.Intl.NumberFormat")}}</div> + +<h2 id="参见">参见</h2> + +<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl', 'See_also')}}</div> diff --git a/files/zh-cn/web/javascript/reference/global_objects/intl/pluralrules/index.html b/files/zh-cn/web/javascript/reference/global_objects/intl/pluralrules/index.html new file mode 100644 index 0000000000..e6da9a523c --- /dev/null +++ b/files/zh-cn/web/javascript/reference/global_objects/intl/pluralrules/index.html @@ -0,0 +1,150 @@ +--- +title: Intl.PluralRules +slug: Web/JavaScript/Reference/Global_Objects/Intl/PluralRules +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/PluralRules +--- +<div><font><font><font><font>{{JSRef}}</font></font></font></font></div> + +<p><font><font><font><font>该</font></font></font></font><font><font><font><font>对象的英文请立即获取iTunes多种敏感格式状语从句:多种语言规则</font></font></font><font><font><font>的</font></font></font><font><font><font>对象的构造函数。</font></font></font></font><strong><code>Intl.PluralRules</code></strong></p> + +<h2 id="句法"><font><font><font><font>句法</font></font></font></font></h2> + +<pre class="syntaxbox"><code>new Intl.PluralRules([<var>locales</var>[, <var>options</var>]]) Intl.PluralRules.call(<var>this</var>[, <var>locales</var>[, <var>options</var>]]) +</code></pre> + +<h3 id="参数"><font><font><font><font>参数</font></font></font></font></h3> + +<dl> + <dt><code>locales</code></dt> + <dd> + <p><font><font><font><font>可选的。</font></font></font><font><font><font>一个带有BCP 47语言标签的字符串或这种字符串的数组。</font></font></font><font><font><font>有关参数的一般形式和解释</font></font></font></font><code>locales</code><font><font><font><font>,请参阅</font></font></font></font>{{jsxref("Intl", "Intl page", "#Locale_identification_and_negotiation", 1)}}<font><font><font><font>。</font></font></font></font></p> + </dd> + <dt><code>options</code></dt> + <dd> + <p><font><font><font><font>可选的,</font></font></font><font><font><font>具有部分或全部以下属性的对象:</font></font></font></font></p> + + <dl> + <dt><code>localeMatcher</code></dt> + <dd><font><font><font><font>要使用的语言环境匹配算法。</font></font></font><font><font><font>可能的值是</font></font></font></font><code>"lookup"</code><font><font><font><font>和</font></font></font></font><code>"best fit"</code><font><font><font><font>; </font></font></font><font><font><font>默认是</font></font></font></font><code>"best fit"</code><font><font><font><font>。</font></font></font><font><font><font>有关此选项的信息,请参阅</font></font></font></font>{{jsxref("Global_Objects/Intl", "Intl page", "#Locale_negotiation", 1)}}<font><font><font><font>。</font></font></font></font></dd> + <dt><code>type</code></dt> + <dd><font><font><font><font>要使用的类型。</font></font></font><font><font><font>可能的值是:</font></font></font></font> + <ul> + <li><code>"cardinal"</code><font><font><font><font>对于基数(指的是事物的数量)。</font></font></font><font><font><font>这是默认值。</font></font></font></font></li> + <li><code>"ordinal"</code><font><font><font><font> 对于序号(指的是事物的排序或排名,例如英文中的“1st”,“2nd”,“3rd”)。</font></font></font></font></li> + </ul> + </dd> + </dl> + </dd> +</dl> + +<h2 id="描述"><font><font><font><font>描述</font></font></font></font></h2> + +<h3 id="属性"><font><font><font><font>属性</font></font></font></font></h3> + +<dl> + <dt>{{jsxref("PluralRules.prototype", "Intl.PluralRules.prototype")}}</dt> + <dd><font><font><font><font>允许为所有对象添加属性。</font></font></font></font></dd> +</dl> + +<h3 id="方法"><font><font><font><font>方法</font></font></font></font></h3> + +<dl> + <dt>{{jsxref("PluralRules.supportedLocalesOf", "Intl.PluralRules.supportedLocalesOf()")}}</dt> + <dd><font><font><font><font>返回一个数组,其中包含提供的语言环境的支持,而不必回退到运行时的默认语言环境。</font></font></font></font></dd> +</dl> + +<h2 id="PluralRules_实例"><code>PluralRules</code><font><font><font><font> 实例</font></font></font></font></h2> + +<h3 id="属性_2"><font><font><font><font>属性</font></font></font></font></h3> + +<p><code>PluralRules</code><font><font><font><font> 实例从其原型继承了以下属性:</font></font></font></font></p> + +<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/PluralRules/prototype', 'Properties')}}</div> + +<h3 id="方法_2"><font><font><font><font>方法</font></font></font></font></h3> + +<p><code>PluralRules</code><font><font><font><font> 实例从它们的原型继承了以下方法:</font></font></font></font></p> + +<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/PluralRules/prototype', 'Methods')}}</div> + +<h2 id="例子"><font><font><font><font>例子</font></font></font></font></h2> + +<h3 id="基本用法"><font><font><font><font>基本用法</font></font></font></font></h3> + +<p><font><font><font><font>在没有指定语言环境的基本使用中</font><font>,返回默认语言环境中的格式化字符串和默认选项</font><font>。</font></font></font><font><font><font>这有助于区分单数和复数形式,例如“dog”和“dogs”。</font></font></font></font></p> + +<pre class="brush: js">var pr = new Intl.PluralRules(); + +pr.select(0); +// → 'other' if in US English locale + +pr.select(1); +// → 'one' if in US English locale + +pr.select(2); +// → 'other' if in US English locale</pre> + +<h3 id="运用_locales"><font><font><font><font>运用 </font></font></font></font><code>locales</code></h3> + +<p><font><font><font><font>这个例子展示了局部复数规则的一些变化。</font></font></font><font><font><font>为了获得应用程序用户界面中使用的语言格式,请确保使用</font></font></font></font><code>locales</code><font><font><font><font>参数</font></font></font><font><font><font>指定该语言(可能还有一些备用语言)</font></font></font><font><font><font>:</font></font></font></font></p> + +<pre class="brush: js">// Arabic has different plural rules + +new Intl.PluralRules('ar-EG').select(0); +// → 'zero' +new Intl.PluralRules('ar-EG').select(1); +// → 'one' +new Intl.PluralRules('ar-EG').select(2); +// → 'two' +new Intl.PluralRules('ar-EG').select(6); +// → 'few' +new Intl.PluralRules('ar-EG').select(18); +// → 'many'</pre> + +<h3 id="运用_options"><font><font><font><font>运用 </font></font></font></font><code>options</code></h3> + +<p><font><font><font><font>可以查询查询结果使用</font></font></font></font><code>options</code><font><font><font><font>参数</font></font></font><font><font><font>进行自定义,该</font></font></font><font><font><font>参数具有一个</font></font></font></font><code>type</code><font><font><font><font>您可以设置的</font></font></font><font><font><font>属性</font></font></font></font><code>ordinal</code><font><font><font><font>。</font></font></font><font><font><font>这对计算序数指标很有用,例如“第一”,“第二”,“第三”,“第四”,“42”等。</font></font></font></font></p> + +<pre class="brush: js">var pr = new Intl.PluralRules('en-US', { type: 'ordinal' }); + +pr.select(0); +// → 'other' +pr.select(1); +// → 'one' +pr.select(2); +// → 'two' +pr.select(3); +// → 'few' +pr.select(4); +// → 'other' +pr.select(42); +// → 'two'</pre> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col"><font><font><font><font>规范</font></font></font></font></th> + <th scope="col"><font><font><font><font>状态</font></font></font></font></th> + <th scope="col"><font><font><font><font>评论</font></font></font></font></th> + </tr> + <tr> + <td><a href="https://rawgit.com/caridy/intl-plural-rules-spec/master/index.html"><font><font><font><font>国际复数规则草案</font></font></font></font></a></td> + <td><font><font><font><font>{{Spec2('ES Int Draft')}}</font></font></font></font></td> + <td><font><font><font><font>初始定义</font></font></font></font></td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性"><font><font><font><font>浏览器兼容性</font></font></font></font></h2> + +<div> +<div class="hidden"><font><font><font><font>此页面上的兼容性表格由结构化数据生成</font><font>。</font></font></font><font><font><font>如果您想为数据做出贡献,请查看</font></font></font></font><a href="https://github.com/mdn/browser-compat-data"><font><font><font><font>https://github.com/mdn/browser-compat-data</font></font></font></font></a><font><font><font><font>并向我们发送拉取请求。</font></font></font></font></div> + +<p>{{Compat("javascript.builtins.Intl.PluralRules")}}</p> +</div> + +<h2 id="也可以看看"><font><font><font><font>也可以看看</font></font></font></font></h2> + +<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl', 'See_also')}}</div> diff --git a/files/zh-cn/web/javascript/reference/global_objects/intl/relativetimeformat/index.html b/files/zh-cn/web/javascript/reference/global_objects/intl/relativetimeformat/index.html new file mode 100644 index 0000000000..561af8a1fe --- /dev/null +++ b/files/zh-cn/web/javascript/reference/global_objects/intl/relativetimeformat/index.html @@ -0,0 +1,165 @@ +--- +title: Intl.RelativeTimeFormat +slug: Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat +--- +<div> +<div>{{JSRef}}</div> + +<p><strong><code>Intl.RelativeTimeFormat</code></strong>对象启用本地化的相对时间格式。</p> + +<div>{{EmbedInteractiveExample("pages/js/intl-relativetimeformat.html")}}</div> + +<p class="hidden">此交互式示例的源存储在GitHub存储库中。如果您想参与交互式示例项目,请克隆<a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a>并向我们发送拉取请求。</p> + +<h2 id="句法">句法</h2> + +<pre class="notranslate"><code>new Intl.RelativeTimeFormat([<var>locales</var>[, <var>options</var>]]) +</code></pre> + +<h3 id="参数">参数</h3> + +<dl> + <dt><code>locales</code></dt> + <dd> + <p>可选的。带有BCP 47语言标记的字符串,或此类字符串的数组。有关参数的一般形式和解释<code>locales</code>,请参阅{{jsxref("Global_Objects/Intl","Intl page","#Locale_identification_and_negotiation",1)}}。</p> + </dd> + <dt><code>options</code></dt> + <dd>可选的。具有以下部分或全部属性的对象: + <ul> + <li><code>localeMatcher</code><br> + 要使用的区域设置匹配算法。可能的值是<code>"lookup"</code>和<code>"best fit"</code>; 默认是<code>"best fit"</code>。有关此选项的信息,请参阅<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation" rel="nofollow"><code>Intl</code></a>。</li> + <li><code>numeric</code><br> + 输出消息的格式。可能的值是: + <ul> + <li><code>"always"</code>(默认,例如,<code>1 day ago</code>),</li> + <li>或<code>"auto"</code>(例如<code>yesterday</code>)。该<code>"auto"</code>值允许不必总是在输出中使用数值。</li> + </ul> + </li> + <li><code>style</code><br> + 国际化信息的长度。可能的值是: + <ul> + <li><code>"long"</code>(默认,例如,<code>in 1 month</code>)</li> + <li><code>"short"</code>(例如<code>in 1 mo.</code>),</li> + <li>或<code>"narrow"</code>(例如<code>in 1 mo.</code>)。狭窄的风格可能类似于某些语言环境的短风格。</li> + </ul> + </li> + </ul> + </dd> +</dl> + +<h2 id="描述">描述</h2> + +<h3 id="属性">属性</h3> + +<dl> + <dt>{{jsxref("RelativeTimeFormat.prototype","Intl.RelativeTimeFormat.prototype")}}</dt> + <dd>允许向所有对象添加属性。</dd> +</dl> + +<h3 id="方法">方法</h3> + +<dl> + <dt>{{jsxref("RelativeTimeFormat.supportedLocalesOf","Intl.RelativeTimeFormat.supportedLocalesOf()")}}</dt> + <dd>返回一个数组,其中包含所支持的语言环境,而不必回退到运行时的默认语言环境。</dd> +</dl> + +<h2 id="RelativeTimeFormat_实例"><code>RelativeTimeFormat</code> 实例</h2> + +<h3 id="属性_2">属性</h3> + +<p><code>RelativeTimeFormat</code> 实例从其原型继承以下属性:</p> + +<p>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat/prototype','Properties')}}</p> + +<h3 id="方法_2">方法</h3> + +<p><code>RelativeTimeFormat</code> 实例从其原型继承以下方法:</p> + +<p>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat/prototype','Methods')}}</p> + +<h2 id="例子">例子</h2> + +<h3 id="基本format用法">基本<code>format</code>用法</h3> + +<p>以下示例显示如何使用英语创建相对时间格式化程序。</p> + +<pre class="brush: js notranslate">//在语言环境中创建相对时间格式化程序 +//显式传入默认值。 +const rtf = new Intl.RelativeTimeFormat("en",{ + localeMatcher: "bestfit",//其他值:"lookup" + numeric: "always",//其他值:"auto" + style: "long",//其他值:"short"或"narrow" +}); + +//使用负值(-1)格式化相对时间。 +rtf.format(-1,"day"); +//>"1 day ago" + +//使用正值(1)格式化相对时间。 +rtf.format(1,"day"); +//>"in 1 day"</pre> + +<h3 id="使用auto选项">使用<code>auto</code>选项</h3> + +<p>如果<code>numeric:auto</code>选项被传递,它将生成字符串<code>yesterday</code>或<code>tomorrow</code>代替<code>1 day ago</code>或<code>in 1 day</code>。这允许不必总是在输出中使用数值。</p> + +<pre class="brush: js notranslate">//在语言环境中创建相对时间格式化程序 +//使用数字:传入"auto"选项值。 +const rtf = new Intl.RelativeTimeFormat("en",{numeric: "auto"}); + +//使用负值(-1)格式化相对时间。 +rtf.format(-1,"day"); +//>"yesterday" + +//使用正日单位(1)格式化相对时间。 +rtf.format(1,"day"); +//>"tomorrow" +</pre> + +<h3 id="运用_formatToParts">运用 <code>formatToParts</code></h3> + +<p>以下示例显示如何创建返回格式化部件的相对时间格式器</p> + +<pre class="brush: js notranslate">const rtf = new Intl.RelativeTimeFormat("en",{numeric: "auto"}); + +//使用日期单位格式化相对时间。 +rtf.formatToParts(-1,"day"); +//> [{type: "literal",value: "yesterday"}] + +rtf.formatToParts(100,"day"); +//> [{type: "literal",value: "in"}, +//> {type: "integer",value: "100",unit: "day"}, +//> {type: "literal",value: "days"}]</pre> +</div> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td><a href="https://tc39.es/proposal-intl-relative-time/#sec-intl-relativetimeformat-constructor">Intl.RelativeTimeFormat Constructor</a></td> + <td>Stage 3</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<div> + + +<p>{{Compat("javascript.builtins.Intl.RelativeTimeFormat")}}</p> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="https://developers.google.com/web/updates/2018/10/intl-relativetimeformat">The Intl.RelativeTimeFormat API</a></li> +</ul> +</div> |