File tree Expand file tree Collapse file tree 2 files changed +30
-5
lines changed Expand file tree Collapse file tree 2 files changed +30
-5
lines changed Original file line number Diff line number Diff line change @@ -28,6 +28,9 @@ describe('Initialization tests', () => {
2828 navigator : {
2929 languages : [ 'cy' , 'en' ] ,
3030 } ,
31+ location : {
32+ search : '' ,
33+ } ,
3134 } ) ) ;
3235 const i18n = await import ( '../i18n' ) ;
3336 const getText = get ( i18n . t ) ;
@@ -42,6 +45,9 @@ describe('Initialization tests', () => {
4245 navigator : {
4346 languages : [ 'random-language' ] ,
4447 } ,
48+ location : {
49+ search : '' ,
50+ } ,
4551 } ) ) ;
4652 const i18n = await import ( '../i18n' ) ;
4753 const getText = get ( i18n . t ) ;
@@ -50,4 +56,21 @@ describe('Initialization tests', () => {
5056
5157 expect ( translatedText ) . toBe ( 'You are currently recording!' ) ;
5258 } ) ;
59+
60+ test ( 'Language is set to welsh when it is defined query string' , async ( ) => {
61+ windowSpy . mockImplementation ( ( ) => ( {
62+ navigator : {
63+ languages : [ 'some languages' ] ,
64+ } ,
65+ location : {
66+ search : '?l=cy' ,
67+ } ,
68+ } ) ) ;
69+ const i18n = await import ( '../i18n' ) ;
70+ const getText = get ( i18n . t ) ;
71+
72+ const translatedText = getText ( 'alert.isRecording' ) ;
73+
74+ expect ( translatedText ) . toBe ( "Rydych chi'n recordio ar hyn o bryd!" ) ;
75+ } ) ;
5376} ) ;
Original file line number Diff line number Diff line change 66
77import browserLang from 'browser-lang' ;
88import { FormatXMLElementFn } from 'intl-messageformat' ;
9- import { init , locale , register } from 'svelte-i18n' ;
9+ import { getLocaleFromQueryString , init , locale , register } from 'svelte-i18n' ;
1010import { get } from 'svelte/store' ;
1111import { persistantWritable } from './script/stores/storeUtil' ;
1212export { t } from 'svelte-i18n' ;
@@ -54,10 +54,12 @@ export const allLanguages = [
5454register ( 'en' , ( ) => import ( './messages/ui.en.json' ) ) ;
5555register ( 'cy' , ( ) => import ( './messages/ui.cy.json' ) ) ;
5656
57- const initialLocale = browserLang ( {
58- languages : allLanguages . map ( l => l . id ) ,
59- fallback : 'en' ,
60- } ) ;
57+ const initialLocale =
58+ getLocaleFromQueryString ( 'l' ) ||
59+ browserLang ( {
60+ languages : allLanguages . map ( l => l . id ) ,
61+ fallback : 'en' ,
62+ } ) ;
6163
6264const persistantLocale = persistantWritable ( 'lang' , initialLocale ) ;
6365
You can’t perform that action at this time.
0 commit comments