[{"data":1,"prerenderedAt":1281},["ShallowReactive",2],{"content-\u002Fen\u002Fcomponents\u002Fconfig-provider":3,"content-en-fallback-\u002Fen\u002Fcomponents\u002Fconfig-provider":718},{"id":4,"title":5,"body":6,"description":710,"extension":711,"meta":712,"nav":713,"navigation":155,"path":714,"seo":715,"stem":716,"__hash__":717},"content_en\u002Fen\u002Fcomponents\u002Fconfig-provider.md","Config Provider Localization",{"type":7,"value":8,"toc":702},"minimark",[9,14,48,77,82,298,301,305,382,386,396,489,503,507,570,599,603,668,672,698],[10,11,13],"h1",{"id":12},"config-provider-localization-i18n","Config Provider Localization (i18n)",[15,16,17,18,22,23,27,28,31,32,35,36,39,40,43,44,47],"p",{},"The library keeps its ",[19,20,21],"strong",{},"built-in accessible names \u002F default strings"," in per-component\n",[24,25,26],"code",{},"locale.ts"," slices (e.g. ",[24,29,30],{},"input\u002Flocale.ts",", ",[24,33,34],{},"infobar\u002Flocale.ts","). They default to the\nbuilt-in locale ",[19,37,38],{},"zh-Hans",". ",[24,41,42],{},"FluereConfigProvider"," is the injection point: wrap it\naround any components to switch the built-in strings for the whole subtree, or override\nindividual strings per ",[24,45,46],{},"locale × scope",".",[49,50,51],"blockquote",{},[15,52,53,54,56,57,60,61,64,65,68,69,72,73,76],{},"Phase-one languages: ",[24,55,38],{}," (default; ",[24,58,59],{},"zh-CN"," \u002F ",[24,62,63],{},"zh"," are aliased to it) and ",[24,66,67],{},"en",".\nDate \u002F number formatting goes through ",[24,70,71],{},"Intl"," and is unaffected by this provider\n(see the ",[24,74,75],{},"locale"," prop on NumberBox).",[78,79,81],"h2",{"id":80},"basic-usage","Basic usage",[83,84,89],"pre",{"className":85,"code":86,"language":87,"meta":88,"style":88},"language-vue shiki shiki-themes github-light github-dark","\u003Cscript setup lang=\"ts\">\nimport { ref } from 'vue'\nimport { FluereConfigProvider } from '@fluere-vue\u002Fui'\n\n\u002F\u002F Follow your app's current language; default is zh-Hans, switch to 'en' for English\nconst locale = ref\u003C'zh-Hans' | 'en'>('en')\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CFluereConfigProvider :locale=\"locale\">\n    \u003CFluereNumberBox spin-button-placement-mode=\"inline\" \u002F>\n    \u003CFluereProgressRing \u002F>\n  \u003C\u002FFluereConfigProvider>\n\u003C\u002Ftemplate>\n","vue","",[24,90,91,121,137,150,157,164,200,210,215,225,249,269,279,289],{"__ignoreMap":88},[92,93,96,100,104,108,111,114,118],"span",{"class":94,"line":95},"line",1,[92,97,99],{"class":98},"sVt8B","\u003C",[92,101,103],{"class":102},"s9eBZ","script",[92,105,107],{"class":106},"sScJk"," setup",[92,109,110],{"class":106}," lang",[92,112,113],{"class":98},"=",[92,115,117],{"class":116},"sZZnC","\"ts\"",[92,119,120],{"class":98},">\n",[92,122,124,128,131,134],{"class":94,"line":123},2,[92,125,127],{"class":126},"szBVR","import",[92,129,130],{"class":98}," { ref } ",[92,132,133],{"class":126},"from",[92,135,136],{"class":116}," 'vue'\n",[92,138,140,142,145,147],{"class":94,"line":139},3,[92,141,127],{"class":126},[92,143,144],{"class":98}," { FluereConfigProvider } ",[92,146,133],{"class":126},[92,148,149],{"class":116}," '@fluere-vue\u002Fui'\n",[92,151,153],{"class":94,"line":152},4,[92,154,156],{"emptyLinePlaceholder":155},true,"\n",[92,158,160],{"class":94,"line":159},5,[92,161,163],{"class":162},"sJ8bj","\u002F\u002F Follow your app's current language; default is zh-Hans, switch to 'en' for English\n",[92,165,167,170,174,177,180,182,185,188,191,194,197],{"class":94,"line":166},6,[92,168,169],{"class":126},"const",[92,171,173],{"class":172},"sj4cs"," locale",[92,175,176],{"class":126}," =",[92,178,179],{"class":106}," ref",[92,181,99],{"class":98},[92,183,184],{"class":116},"'zh-Hans'",[92,186,187],{"class":126}," |",[92,189,190],{"class":116}," 'en'",[92,192,193],{"class":98},">(",[92,195,196],{"class":116},"'en'",[92,198,199],{"class":98},")\n",[92,201,203,206,208],{"class":94,"line":202},7,[92,204,205],{"class":98},"\u003C\u002F",[92,207,103],{"class":102},[92,209,120],{"class":98},[92,211,213],{"class":94,"line":212},8,[92,214,156],{"emptyLinePlaceholder":155},[92,216,218,220,223],{"class":94,"line":217},9,[92,219,99],{"class":98},[92,221,222],{"class":102},"template",[92,224,120],{"class":98},[92,226,228,231,233,236,238,240,243,245,247],{"class":94,"line":227},10,[92,229,230],{"class":98},"  \u003C",[92,232,42],{"class":102},[92,234,235],{"class":98}," :",[92,237,75],{"class":106},[92,239,113],{"class":98},[92,241,242],{"class":116},"\"",[92,244,75],{"class":98},[92,246,242],{"class":116},[92,248,120],{"class":98},[92,250,252,255,258,261,263,266],{"class":94,"line":251},11,[92,253,254],{"class":98},"    \u003C",[92,256,257],{"class":102},"FluereNumberBox",[92,259,260],{"class":106}," spin-button-placement-mode",[92,262,113],{"class":98},[92,264,265],{"class":116},"\"inline\"",[92,267,268],{"class":98}," \u002F>\n",[92,270,272,274,277],{"class":94,"line":271},12,[92,273,254],{"class":98},[92,275,276],{"class":102},"FluereProgressRing",[92,278,268],{"class":98},[92,280,282,285,287],{"class":94,"line":281},13,[92,283,284],{"class":98},"  \u003C\u002F",[92,286,42],{"class":102},[92,288,120],{"class":98},[92,290,292,294,296],{"class":94,"line":291},14,[92,293,205],{"class":98},[92,295,222],{"class":102},[92,297,120],{"class":98},[15,299,300],{},"Without a provider the components still work: they fall back to the built-in zh-Hans\ndefault and never throw.",[78,302,304],{"id":303},"resolution-order","Resolution order",[306,307,308,321],"table",{},[309,310,311],"thead",{},[312,313,314,318],"tr",{},[315,316,317],"th",{},"Level",[315,319,320],{},"Description",[322,323,324,348,359,371],"tbody",{},[312,325,326,330],{},[327,328,329],"td",{},"Explicit text prop",[327,331,332,31,335,60,338,31,341,31,344,347],{},[24,333,334],{},"revealButtonLabel",[24,336,337],{},"increaseLabel",[24,339,340],{},"decreaseLabel",[24,342,343],{},"closeButtonLabel",[24,345,346],{},"label"," … — highest priority",[312,349,350,356],{},[327,351,352,353,355],{},"Component ",[24,354,75],{}," prop",[327,357,358],{},"overrides the built-in strings of a single component, beats the provider",[312,360,361,368],{},[327,362,363,365,366],{},[24,364,42],{}," ",[24,367,75],{},[327,369,370],{},"subtree-wide switch",[312,372,373,376],{},[327,374,375],{},"Built-in default",[327,377,378,379],{},"zh-Hans; missing keys fall back ",[24,380,381],{},"zh-Hans → zh → en",[78,383,385],{"id":384},"overriding-individual-strings-no-source-change","Overriding individual strings (no source change)",[15,387,388,391,392,395],{},[24,389,390],{},"messages"," deep-merges into each component slice per ",[24,393,394],{},"locale → scope → key",",\noverriding only the listed entries:",[83,397,399],{"className":85,"code":398,"language":87,"meta":88,"style":88},"\u003Ctemplate>\n  \u003CFluereConfigProvider :messages=\"{ 'zh-Hans': { input: { showPassword: '显示明文' } } }\">\n    \u003CFluereInput\n      type=\"password\"\n      placeholder=\"Password\"\n    \u002F>\n  \u003C\u002FFluereConfigProvider>\n\u003C\u002Ftemplate>\n",[24,400,401,409,441,448,458,468,473,481],{"__ignoreMap":88},[92,402,403,405,407],{"class":94,"line":95},[92,404,99],{"class":98},[92,406,222],{"class":102},[92,408,120],{"class":98},[92,410,411,413,415,417,419,421,423,426,428,431,434,437,439],{"class":94,"line":123},[92,412,230],{"class":98},[92,414,42],{"class":102},[92,416,235],{"class":98},[92,418,390],{"class":106},[92,420,113],{"class":98},[92,422,242],{"class":116},[92,424,425],{"class":98},"{ ",[92,427,184],{"class":116},[92,429,430],{"class":98},": { input: { showPassword: ",[92,432,433],{"class":116},"'显示明文'",[92,435,436],{"class":98}," } } }",[92,438,242],{"class":116},[92,440,120],{"class":98},[92,442,443,445],{"class":94,"line":139},[92,444,254],{"class":98},[92,446,447],{"class":102},"FluereInput\n",[92,449,450,453,455],{"class":94,"line":152},[92,451,452],{"class":106},"      type",[92,454,113],{"class":98},[92,456,457],{"class":116},"\"password\"\n",[92,459,460,463,465],{"class":94,"line":159},[92,461,462],{"class":106},"      placeholder",[92,464,113],{"class":98},[92,466,467],{"class":116},"\"Password\"\n",[92,469,470],{"class":94,"line":166},[92,471,472],{"class":98},"    \u002F>\n",[92,474,475,477,479],{"class":94,"line":202},[92,476,284],{"class":98},[92,478,42],{"class":102},[92,480,120],{"class":98},[92,482,483,485,487],{"class":94,"line":212},[92,484,205],{"class":98},[92,486,222],{"class":102},[92,488,120],{"class":98},[15,490,491,492,495,496,499,500,47],{},"The ",[24,493,494],{},"scope"," and the ",[24,497,498],{},"key","s available in each slice are documented on the component pages\nor in ",[24,501,502],{},"packages\u002Fui\u002Fsrc\u002F\u003Ccomponent>\u002Flocale.ts",[78,504,506],{"id":505},"built-in-strings-covered-in-phase-one","Built-in strings covered in phase one",[508,509,510,521,533,549,558],"ul",{},[511,512,513,516,517,520],"li",{},[24,514,515],{},"input",": the password reveal button accessible name (",[24,518,519],{},"showPassword",")",[511,522,523,526,527,60,530,520],{},[24,524,525],{},"number-box",": the spin button accessible names (",[24,528,529],{},"increase",[24,531,532],{},"decrease",[511,534,535,538,539,542,543,60,546,520],{},[24,536,537],{},"scroll-view",": track step buttons and scrollbar thumb accessible names\n(",[24,540,541],{},"scrollUp"," … \u002F ",[24,544,545],{},"horizontalScrollBar",[24,547,548],{},"verticalScrollBar",[511,550,551,554,555,520],{},[24,552,553],{},"infobar",": the close button accessible name (",[24,556,557],{},"close",[511,559,560,60,563,566,567,520],{},[24,561,562],{},"progress-ring",[24,564,565],{},"progress-bar",": the indeterminate \"loading\" name (",[24,568,569],{},"loading",[49,571,572],{},[15,573,574,575,578,579,582,583,586,587,590,591,594,595,598],{},"The library does not carry the ",[24,576,577],{},"vue-i18n"," runtime; message compilation \u002F resolution\nand the fallback chain reuse ",[24,580,581],{},"@intlify\u002Fcore-base"," (see ",[24,584,585],{},"use-locale"," in ",[24,588,589],{},"packages\u002Fhooks",").\nThe subpath exports ",[24,592,593],{},"@fluere-vue\u002Fui\u002Flocales\u002Fzh-Hans"," and ",[24,596,597],{},"\u002Fen"," will ship with the\n0.3 build pipeline (goal 3).",[78,600,602],{"id":601},"api","API",[306,604,605,620],{},[309,606,607],{},[312,608,609,612,615,618],{},[315,610,611],{},"Prop",[315,613,614],{},"Type",[315,616,617],{},"Default",[315,619,320],{},[322,621,622,647],{},[312,623,624,628,633,637],{},[327,625,626],{},[24,627,75],{},[327,629,630],{},[24,631,632],{},"FluereLocale | string",[327,634,635],{},[24,636,184],{},[327,638,639,640,60,642,644,645],{},"Subtree locale for built-in strings; ",[24,641,59],{},[24,643,63],{}," normalize to ",[24,646,38],{},[312,648,649,653,658,663],{},[327,650,651],{},[24,652,390],{},[327,654,655],{},[24,656,657],{},"ProviderMessages",[327,659,660],{},[24,661,662],{},"—",[327,664,665,666],{},"Override individual strings per ",[24,667,394],{},[78,669,671],{"id":670},"accessibility-and-fallback","Accessibility and fallback",[508,673,674,680,686],{},[511,675,676,677,679],{},"The built-in strings are mostly AT-facing accessible names (loading \u002F close \u002F scroll),\nnot visible text; visible text is still provided by the consumer (typically via\n",[24,678,346],{},", header or slots).",[511,681,682,683,685],{},"In development, a missing key warns and falls back to ",[24,684,67],{},"; in production it falls back\nsilently.",[511,687,688,689,692,693,60,695,697],{},"SSR-safe: the provider's locale \u002F messages are instance-scoped (provide\u002Finject), so\nconcurrent renders never leak languages. ",[24,690,691],{},"packages\u002Fui\u002Fsrc\u002F__tests__\u002Fssr-smoke.test.ts","\ncovers both ",[24,694,38],{},[24,696,67],{}," plus concurrent isolation.",[699,700,701],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":88,"searchDepth":123,"depth":123,"links":703},[704,705,706,707,708,709],{"id":80,"depth":123,"text":81},{"id":303,"depth":123,"text":304},{"id":384,"depth":123,"text":385},{"id":505,"depth":123,"text":506},{"id":601,"depth":123,"text":602},{"id":670,"depth":123,"text":671},"The i18n locale injection point for the library's built-in accessible-name strings.","md",{},{"title":5},"\u002Fen\u002Fcomponents\u002Fconfig-provider",{"title":5,"description":710},"en\u002Fcomponents\u002Fconfig-provider","ilfjvgcjdDLcKhnWdFQHNI8RomWH33KiWSxUD3_G6VM",{"id":719,"title":720,"body":721,"description":1274,"extension":711,"meta":1275,"nav":1276,"navigation":155,"path":1277,"seo":1278,"stem":1279,"__hash__":1280},"content\u002Fcomponents\u002Fconfig-provider.md","Config Provider 本地化",{"type":7,"value":722,"toc":1266},[723,727,749,768,771,923,926,929,993,997,1005,1089,1100,1103,1149,1171,1173,1236,1239,1264],[10,724,726],{"id":725},"config-provider-本地化i18n","Config Provider 本地化（i18n）",[15,728,729,730,733,734,736,737,739,740,742,743,745,746,748],{},"组件库把",[19,731,732],{},"内建的可访问名 \u002F 缺省文案","集中到每个组件目录下的 ",[24,735,26],{}," 切片（如\n",[24,738,30],{},"、",[24,741,34],{},"）。这些文案默认跟随内置缺省语种 ",[19,744,38],{},"。\n",[24,747,42],{}," 是它们的 locale 注入点：把它包在任何组件之上，即可切换整棵\n子树的内建文案，或按 locale × scope 覆盖个别措辞。",[49,750,751],{},[15,752,753,754,756,757,60,759,761,762,764,765,767],{},"一期语言：",[24,755,38],{},"（默认，兼容 ",[24,758,59],{},[24,760,63],{},"）与 ",[24,763,67],{},"；日期 \u002F 数字格式化走\n",[24,766,71],{},"，不受本 Provider 影响（数字框的 locale prop 见 NumberBox）。",[78,769,770],{"id":770},"基础用法",[83,772,774],{"className":85,"code":773,"language":87,"meta":88,"style":88},"\u003Cscript setup lang=\"ts\">\nimport { ref } from 'vue'\nimport { FluereConfigProvider } from '@fluere-vue\u002Fui'\n\n\u002F\u002F 随应用当前语言切换即可；缺省 zh-Hans，切 'en' 整体转英文内建文案\nconst locale = ref\u003C'zh-Hans' | 'en'>('en')\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CFluereConfigProvider :locale=\"locale\">\n    \u003CFluereNumberBox spin-button-placement-mode=\"inline\" \u002F>\n    \u003CFluereProgressRing \u002F>\n  \u003C\u002FFluereConfigProvider>\n\u003C\u002Ftemplate>\n",[24,775,776,792,802,812,816,821,845,853,857,865,885,899,907,915],{"__ignoreMap":88},[92,777,778,780,782,784,786,788,790],{"class":94,"line":95},[92,779,99],{"class":98},[92,781,103],{"class":102},[92,783,107],{"class":106},[92,785,110],{"class":106},[92,787,113],{"class":98},[92,789,117],{"class":116},[92,791,120],{"class":98},[92,793,794,796,798,800],{"class":94,"line":123},[92,795,127],{"class":126},[92,797,130],{"class":98},[92,799,133],{"class":126},[92,801,136],{"class":116},[92,803,804,806,808,810],{"class":94,"line":139},[92,805,127],{"class":126},[92,807,144],{"class":98},[92,809,133],{"class":126},[92,811,149],{"class":116},[92,813,814],{"class":94,"line":152},[92,815,156],{"emptyLinePlaceholder":155},[92,817,818],{"class":94,"line":159},[92,819,820],{"class":162},"\u002F\u002F 随应用当前语言切换即可；缺省 zh-Hans，切 'en' 整体转英文内建文案\n",[92,822,823,825,827,829,831,833,835,837,839,841,843],{"class":94,"line":166},[92,824,169],{"class":126},[92,826,173],{"class":172},[92,828,176],{"class":126},[92,830,179],{"class":106},[92,832,99],{"class":98},[92,834,184],{"class":116},[92,836,187],{"class":126},[92,838,190],{"class":116},[92,840,193],{"class":98},[92,842,196],{"class":116},[92,844,199],{"class":98},[92,846,847,849,851],{"class":94,"line":202},[92,848,205],{"class":98},[92,850,103],{"class":102},[92,852,120],{"class":98},[92,854,855],{"class":94,"line":212},[92,856,156],{"emptyLinePlaceholder":155},[92,858,859,861,863],{"class":94,"line":217},[92,860,99],{"class":98},[92,862,222],{"class":102},[92,864,120],{"class":98},[92,866,867,869,871,873,875,877,879,881,883],{"class":94,"line":227},[92,868,230],{"class":98},[92,870,42],{"class":102},[92,872,235],{"class":98},[92,874,75],{"class":106},[92,876,113],{"class":98},[92,878,242],{"class":116},[92,880,75],{"class":98},[92,882,242],{"class":116},[92,884,120],{"class":98},[92,886,887,889,891,893,895,897],{"class":94,"line":251},[92,888,254],{"class":98},[92,890,257],{"class":102},[92,892,260],{"class":106},[92,894,113],{"class":98},[92,896,265],{"class":116},[92,898,268],{"class":98},[92,900,901,903,905],{"class":94,"line":271},[92,902,254],{"class":98},[92,904,276],{"class":102},[92,906,268],{"class":98},[92,908,909,911,913],{"class":94,"line":281},[92,910,284],{"class":98},[92,912,42],{"class":102},[92,914,120],{"class":98},[92,916,917,919,921],{"class":94,"line":291},[92,918,205],{"class":98},[92,920,222],{"class":102},[92,922,120],{"class":98},[15,924,925],{},"无需 Provider 时组件仍可用：自动回落内置缺省 zh-Hans，不会抛错。",[78,927,928],{"id":928},"解析优先级",[306,930,931,941],{},[309,932,933],{},[312,934,935,938],{},[315,936,937],{},"层级",[315,939,940],{},"说明",[322,942,943,962,972,983],{},[312,944,945,948],{},[327,946,947],{},"显式文案 prop",[327,949,950,951,739,953,60,955,739,957,739,959,961],{},"如 ",[24,952,334],{},[24,954,337],{},[24,956,340],{},[24,958,343],{},[24,960,346],{},"，最高优先",[312,963,964,969],{},[327,965,966,967,355],{},"组件 ",[24,968,75],{},[327,970,971],{},"只改单个组件的内建文案，压过 Provider",[312,973,974,980],{},[327,975,976,365,978],{},[24,977,42],{},[24,979,75],{},[327,981,982],{},"子树级切换",[312,984,985,988],{},[327,986,987],{},"内置缺省",[327,989,990,991],{},"zh-Hans；缺 key 回退链 ",[24,992,381],{},[78,994,996],{"id":995},"覆盖个别措辞无需改源码","覆盖个别措辞（无需改源码）",[15,998,999,1001,1002,1004],{},[24,1000,390],{}," 按 ",[24,1003,394],{}," 深合并进各组件内置切片，只覆盖列出的项：",[83,1006,1008],{"className":85,"code":1007,"language":87,"meta":88,"style":88},"\u003Ctemplate>\n  \u003CFluereConfigProvider :messages=\"{ 'zh-Hans': { input: { showPassword: '显示明文' } } }\">\n    \u003CFluereInput\n      type=\"password\"\n      placeholder=\"密码\"\n    \u002F>\n  \u003C\u002FFluereConfigProvider>\n\u003C\u002Ftemplate>\n",[24,1009,1010,1018,1046,1052,1060,1069,1073,1081],{"__ignoreMap":88},[92,1011,1012,1014,1016],{"class":94,"line":95},[92,1013,99],{"class":98},[92,1015,222],{"class":102},[92,1017,120],{"class":98},[92,1019,1020,1022,1024,1026,1028,1030,1032,1034,1036,1038,1040,1042,1044],{"class":94,"line":123},[92,1021,230],{"class":98},[92,1023,42],{"class":102},[92,1025,235],{"class":98},[92,1027,390],{"class":106},[92,1029,113],{"class":98},[92,1031,242],{"class":116},[92,1033,425],{"class":98},[92,1035,184],{"class":116},[92,1037,430],{"class":98},[92,1039,433],{"class":116},[92,1041,436],{"class":98},[92,1043,242],{"class":116},[92,1045,120],{"class":98},[92,1047,1048,1050],{"class":94,"line":139},[92,1049,254],{"class":98},[92,1051,447],{"class":102},[92,1053,1054,1056,1058],{"class":94,"line":152},[92,1055,452],{"class":106},[92,1057,113],{"class":98},[92,1059,457],{"class":116},[92,1061,1062,1064,1066],{"class":94,"line":159},[92,1063,462],{"class":106},[92,1065,113],{"class":98},[92,1067,1068],{"class":116},"\"密码\"\n",[92,1070,1071],{"class":94,"line":166},[92,1072,472],{"class":98},[92,1074,1075,1077,1079],{"class":94,"line":202},[92,1076,284],{"class":98},[92,1078,42],{"class":102},[92,1080,120],{"class":98},[92,1082,1083,1085,1087],{"class":94,"line":212},[92,1084,205],{"class":98},[92,1086,222],{"class":102},[92,1088,120],{"class":98},[15,1090,1091,1093,1094,1096,1097,1099],{},[24,1092,494],{}," 与各切片里的 ",[24,1095,498],{}," 见各组件文档或 ",[24,1098,502],{},"。",[78,1101,1102],{"id":1102},"首批覆盖的内建文案",[508,1104,1105,1113,1122,1133,1140],{},[511,1106,1107,1109,1110,1112],{},[24,1108,515],{},"：显示按钮可访问名（",[24,1111,519],{},"）",[511,1114,1115,1117,1118,60,1120,1112],{},[24,1116,525],{},"：增减按钮可访问名（",[24,1119,529],{},[24,1121,532],{},[511,1123,1124,1126,1127,542,1129,60,1131,1112],{},[24,1125,537],{},"：辐射两端步进与滚动条拇指可访问名（",[24,1128,541],{},[24,1130,545],{},[24,1132,548],{},[511,1134,1135,1137,1138,1112],{},[24,1136,553],{},"：关闭按钮可访问名（",[24,1139,557],{},[511,1141,1142,60,1144,1146,1147,1112],{},[24,1143,562],{},[24,1145,565],{},"：不确定态「加载中」（",[24,1148,569],{},[49,1150,1151],{},[15,1152,1153,1154,1156,1157,1159,1160,1162,1163,1165,1166,60,1168,1170],{},"组件库不引入 ",[24,1155,577],{}," 运行时；消息编译 \u002F 解析 \u002F 回退复用 ",[24,1158,581],{},"\n（见 ",[24,1161,589],{}," 的 ",[24,1164,585],{},"）。语言包子路径导出\n",[24,1167,593],{},[24,1169,597],{}," 随 0.3 目标 3 构建落地。",[78,1172,602],{"id":601},[306,1174,1175,1190],{},[309,1176,1177],{},[312,1178,1179,1182,1185,1188],{},[315,1180,1181],{},"属性（Props）",[315,1183,1184],{},"类型",[315,1186,1187],{},"默认",[315,1189,940],{},[322,1191,1192,1216],{},[312,1193,1194,1198,1202,1206],{},[327,1195,1196],{},[24,1197,75],{},[327,1199,1200],{},[24,1201,632],{},[327,1203,1204],{},[24,1205,184],{},[327,1207,1208,1209,60,1211,1213,1214],{},"子树内建文案的 locale；",[24,1210,59],{},[24,1212,63],{}," 归一为 ",[24,1215,38],{},[312,1217,1218,1222,1226,1230],{},[327,1219,1220],{},[24,1221,390],{},[327,1223,1224],{},[24,1225,657],{},[327,1227,1228],{},[24,1229,662],{},[327,1231,1232,1233,1235],{},"按 ",[24,1234,394],{}," 覆盖个别文案",[78,1237,1238],{"id":1238},"无障碍与回退",[508,1240,1241,1247,1253],{},[511,1242,1243,1244,1246],{},"内建文案主要为 AT 用的可访问名（loading \u002F close \u002F scroll 等），不是可见文本；\n可见文案依旧由消费方（常经 ",[24,1245,346],{}," \u002F header \u002F 插槽）提供。",[511,1248,1249,1250,1252],{},"开发环境缺 key 会告警并回退到 ",[24,1251,67],{},"；生产静默回退，不刷屏。",[511,1254,1255,1256,1258,1259,60,1261,1263],{},"SSR 安全：Provider 的 locale \u002F messages 均为实例级（provide\u002Finject），\n并发渲染互不串语言；",[24,1257,691],{}," 覆盖了\n",[24,1260,38],{},[24,1262,67],{}," 两种 locale 下各组件与并发隔离。",[699,1265,701],{},{"title":88,"searchDepth":123,"depth":123,"links":1267},[1268,1269,1270,1271,1272,1273],{"id":770,"depth":123,"text":770},{"id":928,"depth":123,"text":928},{"id":995,"depth":123,"text":996},{"id":1102,"depth":123,"text":1102},{"id":601,"depth":123,"text":602},{"id":1238,"depth":123,"text":1238},"组件库内建文案的 locale 注入点（i18n），用于切换语言与覆盖个别措辞。",{},{"title":720},"\u002Fcomponents\u002Fconfig-provider",{"title":720,"description":1274},"components\u002Fconfig-provider","fYylmjgQEIFiqI8boN6VJIftTzYgl1vmkqSYisGLsgI",1792150931580]