Skip to content

Commit 86177aa

Browse files
authored
Merge pull request #11 from ckyoung/main
Fix: make sure to use hyphen on lang attribute
2 parents 107eb36 + d3cc950 commit 86177aa

File tree

4 files changed

+19
-2
lines changed

4 files changed

+19
-2
lines changed

src/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,8 @@ export function getActiveLanguage(): string {
8888
*/
8989
function setLanguage({ lang, messages }: LanguageInterface): string {
9090
if (! isServer) {
91-
document.querySelector('html').setAttribute('lang', lang)
91+
// When setting the HTML lang attribute, hyphen must be use instead of underscore.
92+
document.documentElement.setAttribute("lang", lang.replace('_', '-'));
9293
}
9394

9495
options.lang = lang;

src/utils/get-plural-index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* Copyright (c) 2005-2010 - Zend Technologies USA Inc. (http://www.zend.com)
77
*/
88
export function getPluralIndex(lang: string, number: number): number {
9-
switch (lang) {
9+
switch (lang.replace('_', '-')) {
1010
case 'az':
1111
case 'az-AZ':
1212
case 'bo':

test/fixtures/lang/zh_TW.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"Welcome!": "歡迎"
3+
}

test/translate.test.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,16 @@ it('returns the active lang', async () => {
7272
await loadLanguageAsync('en');
7373
expect(getActiveLanguage()).toBe('en');
7474
})
75+
76+
it('translates to a underscore/dash language', async () => {
77+
await global.mountPlugin();
78+
79+
await loadLanguageAsync('zh_TW');
80+
expect(getActiveLanguage()).toBe('zh_TW');
81+
82+
await loadLanguageAsync('en');
83+
84+
await loadLanguageAsync('zh-TW');
85+
86+
expect(getActiveLanguage()).toBe('zh_TW');
87+
})

0 commit comments

Comments
 (0)