mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-04 03:39:37 -05:00 
			
		
		
		
	fix(web): language selector for chinese and norwegian (#10107)
* fix(web): language selector for chinese and norwegian * add unit test * formatter * undo name change
This commit is contained in:
		
							parent
							
								
									71a132b0b8
								
							
						
					
					
						commit
						79705dc58d
					
				@ -265,7 +265,7 @@ export const langs = [
 | 
				
			|||||||
  { name: 'Lithuanian', code: 'lt', loader: () => import('$lib/i18n/lt.json') },
 | 
					  { name: 'Lithuanian', code: 'lt', loader: () => import('$lib/i18n/lt.json') },
 | 
				
			||||||
  { name: 'Latvian', code: 'lv', loader: () => import('$lib/i18n/lv.json') },
 | 
					  { name: 'Latvian', code: 'lv', loader: () => import('$lib/i18n/lv.json') },
 | 
				
			||||||
  { name: 'Mongolian', code: 'mn', loader: () => import('$lib/i18n/mn.json') },
 | 
					  { name: 'Mongolian', code: 'mn', loader: () => import('$lib/i18n/mn.json') },
 | 
				
			||||||
  { name: 'Norwegian Bokmål', code: 'nb_NO', loader: () => import('$lib/i18n/nb_NO.json') },
 | 
					  { name: 'Norwegian Bokmål', code: 'nb-NO', loader: () => import('$lib/i18n/nb_NO.json') },
 | 
				
			||||||
  { name: 'Dutch', code: 'nl', loader: () => import('$lib/i18n/nl.json') },
 | 
					  { name: 'Dutch', code: 'nl', loader: () => import('$lib/i18n/nl.json') },
 | 
				
			||||||
  { name: 'Polish', code: 'pl', loader: () => import('$lib/i18n/pl.json') },
 | 
					  { name: 'Polish', code: 'pl', loader: () => import('$lib/i18n/pl.json') },
 | 
				
			||||||
  { name: 'Portuguese', code: 'pt', loader: () => import('$lib/i18n/pt.json') },
 | 
					  { name: 'Portuguese', code: 'pt', loader: () => import('$lib/i18n/pt.json') },
 | 
				
			||||||
@ -278,6 +278,6 @@ export const langs = [
 | 
				
			|||||||
  { name: 'Thai', code: 'th', loader: () => import('$lib/i18n/th.json') },
 | 
					  { name: 'Thai', code: 'th', loader: () => import('$lib/i18n/th.json') },
 | 
				
			||||||
  { name: 'Ukrainian', code: 'uk', loader: () => import('$lib/i18n/uk.json') },
 | 
					  { name: 'Ukrainian', code: 'uk', loader: () => import('$lib/i18n/uk.json') },
 | 
				
			||||||
  { name: 'Vietnamese', code: 'vi', loader: () => import('$lib/i18n/vi.json') },
 | 
					  { name: 'Vietnamese', code: 'vi', loader: () => import('$lib/i18n/vi.json') },
 | 
				
			||||||
  { name: 'Chinese (Simplified)', code: 'zh_SIMPLIFIED', loader: () => import('$lib/i18n/zh_SIMPLIFIED.json') },
 | 
					  { name: 'Chinese (Simplified)', code: 'zh-Hans', loader: () => import('$lib/i18n/zh_SIMPLIFIED.json') },
 | 
				
			||||||
  { name: 'Development (keys only)', code: 'dev', loader: () => Promise.resolve({}) },
 | 
					  { name: 'Development (keys only)', code: 'dev', loader: () => Promise.resolve({}) },
 | 
				
			||||||
];
 | 
					];
 | 
				
			||||||
 | 
				
			|||||||
@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					import { langs } from '$lib/constants';
 | 
				
			||||||
import messages from '$lib/i18n/en.json';
 | 
					import messages from '$lib/i18n/en.json';
 | 
				
			||||||
import { exec as execCallback } from 'node:child_process';
 | 
					import { exec as execCallback } from 'node:child_process';
 | 
				
			||||||
import { promisify } from 'node:util';
 | 
					import { promisify } from 'node:util';
 | 
				
			||||||
@ -30,4 +31,16 @@ describe('i18n', () => {
 | 
				
			|||||||
    // Only translations directly using the store seem to get extracted
 | 
					    // Only translations directly using the store seem to get extracted
 | 
				
			||||||
    expect({ ...extractedMessages, ...existingMessages }).toEqual(existingMessages);
 | 
					    expect({ ...extractedMessages, ...existingMessages }).toEqual(existingMessages);
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  describe('language tags', () => {
 | 
				
			||||||
 | 
					    for (const lang of langs) {
 | 
				
			||||||
 | 
					      if (lang.code === 'dev') {
 | 
				
			||||||
 | 
					        continue;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      test(`language tag ${lang.code} is valid`, () => {
 | 
				
			||||||
 | 
					        expect(Intl.NumberFormat.supportedLocalesOf(lang.code)).toHaveLength(1);
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user