Skip to content

Instantly share code, notes, and snippets.

@nautilytics
Last active April 13, 2021 18:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nautilytics/dadd83a52e8dcdaa4823129ffb80f980 to your computer and use it in GitHub Desktop.
Save nautilytics/dadd83a52e8dcdaa4823129ffb80f980 to your computer and use it in GitHub Desktop.
Parse an XML file for Welcome Messages
const tx = `
./commonstrings/src/main/res/values-fil/strings.xml: <string name="onboard_location_greeting_noname">Maligayang pagdating!</string>
./commonstrings/src/main/res/values-es-rES/strings.xml: <string name="onboard_location_greeting_noname">¡Te damos la bienvenida!</string>
./commonstrings/src/main/res/values-ro/strings.xml: <string name="onboard_location_greeting_noname">Bine ai venit!</string>
./commonstrings/src/main/res/values-ru/strings.xml: <string name="onboard_location_greeting_noname">Добро пожаловать!</string>
./commonstrings/src/main/res/values-hy-rAM/strings.xml: <string name="onboard_location_greeting_noname">Բարի գալուստ:</string>
./commonstrings/src/main/res/values-zh-rTW/strings.xml: <string name="onboard_location_greeting_noname">歡迎!</string>
./commonstrings/src/main/res/values-it/strings.xml: <string name="onboard_location_greeting_noname">Ti diamo il benvenuto!</string>
./commonstrings/src/main/res/values-zh-rCN/strings.xml: <string name="onboard_location_greeting_noname">欢迎!</string>
./commonstrings/src/main/res/values-in/strings.xml: <string name="onboard_location_greeting_noname">Selamat datang!</string>
./commonstrings/src/main/res/values-ja/strings.xml: <string name="onboard_location_greeting_noname">ようこそ!</string>
./commonstrings/src/main/res/values-el/strings.xml: <string name="onboard_location_greeting_noname">Καλώς ήρθατε!</string>
./commonstrings/src/main/res/values-zh-rHK/strings.xml: <string name="onboard_location_greeting_noname">歡迎!</string>
./commonstrings/src/main/res/values-km/strings.xml: <string name="onboard_location_greeting_noname">សូមស្វាគមន៍!</string>
./commonstrings/src/main/res/values-am/strings.xml: <string name="onboard_location_greeting_noname">እንኳን ደሕና መጡ!</string>
./commonstrings/src/main/res/values/strings.xml: <string name="onboard_location_greeting_noname">Welcome!</string>
./commonstrings/src/main/res/values-pl/strings.xml: <string name="onboard_location_greeting_noname">Zapraszamy!</string>
./commonstrings/src/main/res/values-vi/strings.xml: <string name="onboard_location_greeting_noname">Chào mừng bạn!</string>
./commonstrings/src/main/res/values-sq/strings.xml: <string name="onboard_location_greeting_noname">Mirë se erdhe!</string>
./commonstrings/src/main/res/values-ur/strings.xml: <string name="onboard_location_greeting_noname">خوش آمدید!</string>
./commonstrings/src/main/res/values-sw/strings.xml: <string name="onboard_location_greeting_noname">Karibu!</string>
./commonstrings/src/main/res/values-tr/strings.xml: <string name="onboard_location_greeting_noname">Hoş geldiniz!</string>
./commonstrings/src/main/res/values-th/strings.xml: <string name="onboard_location_greeting_noname">ยินดีต้อนรับ!</string>
./commonstrings/src/main/res/values-lt/strings.xml: <string name="onboard_location_greeting_noname">Sveiki!</string>
./commonstrings/src/main/res/values-fr/strings.xml: <string name="onboard_location_greeting_noname">Bienvenue !</string>
./commonstrings/src/main/res/values-es/strings.xml: <string name="onboard_location_greeting_noname">Bienvenido!</string>
./commonstrings/src/main/res/values-fa-rAF/strings.xml: <string name="onboard_location_greeting_noname">خوش آمدید!</string>
./commonstrings/src/main/res/values-bn/strings.xml: <string name="onboard_location_greeting_noname">স্বাগত!</string>
./commonstrings/src/main/res/values-de/strings.xml: <string name="onboard_location_greeting_noname">Willkommen!</string>
./commonstrings/src/main/res/values-ko/strings.xml: <string name="onboard_location_greeting_noname">환영합니다!</string>
./commonstrings/src/main/res/values-ha/strings.xml: <string name="onboard_location_greeting_noname">Barka!</string>
./commonstrings/src/main/res/values-bs/strings.xml: <string name="onboard_location_greeting_noname">Dobrodošli!</string>
./commonstrings/src/main/res/values-my/strings.xml: <string name="onboard_location_greeting_noname">ကြိုဆိုပါတယ်။</string>
./commonstrings/src/main/res/values-ar/strings.xml: <string name="onboard_location_greeting_noname">مرحبًا!</string>
./commonstrings/src/main/res/values-pt/strings.xml: <string name="onboard_location_greeting_noname">Bem-vindo!</string>
./commonstrings/src/main/res/values-ps/strings.xml: <string name="onboard_location_greeting_noname">ښه راغلاست!</string>
./commonstrings/src/main/res/values-uk/strings.xml: <string name="onboard_location_greeting_noname">Ласкаво просимо!</string>
./commonstrings/src/main/res/values-b+sr+Latn/strings.xml: <string name="onboard_location_greeting_noname">Dobro došli!</string>
./commonstrings/src/main/res/values-so/strings.xml: <string name="onboard_location_greeting_noname">Soo dhawow!</string>
`;
const regex = /res\/(\S+)\//;
const strs = [];
tx.split('\n').forEach(d => {
const [fileName, xml] = d.split(' ');
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xml, 'text/xml');
if (xmlDoc.getElementsByTagName('string').length) {
const match: any = fileName.match(regex);
if (match?.length > 1) {
const language = match[1];
strs.push([xmlDoc.getElementsByTagName('string')[0].textContent, language]);
}
}
});
console.log(strs.map(d => `'${d[0]}', // ${d[1]}`).join('\n'));
const tx = `
./app/src/main/res/values-fil/strings.xml: <string name="onboard_location_greeting">Maligayang pagdating %s!</string>
./app/src/main/res/values-es-rES/strings.xml: <string name="onboard_location_greeting">¡Te damos la bienvenida, %s!</string>
./app/src/main/res/values-ro/strings.xml: <string name="onboard_location_greeting">Bun venit %s!</string>
./app/src/main/res/values-ru/strings.xml: <string name="onboard_location_greeting">Добро пожаловать, %s!</string>
./app/src/main/res/values-hy-rAM/strings.xml: <string name="onboard_location_greeting">Բարի գալուստ, %s:</string>
./app/src/main/res/values-zh-rTW/strings.xml: <string name="onboard_location_greeting">歡迎%s!</string>
./app/src/main/res/values-it/strings.xml: <string name="onboard_location_greeting">Ti diamo il benvenuto, %s!</string>
./app/src/main/res/values-zh-rCN/strings.xml: <string name="onboard_location_greeting">欢迎 %s!</string>
./app/src/main/res/values-in/strings.xml: <string name="onboard_location_greeting">Selamat datang %s!</string>
./app/src/main/res/values-ja/strings.xml: <string name="onboard_location_greeting">ようこそ、%sさん!</string>
./app/src/main/res/values-el/strings.xml: <string name="onboard_location_greeting">Καλώς ήρθατε %s!</string>
./app/src/main/res/values-zh-rHK/strings.xml: <string name="onboard_location_greeting">歡迎您,%s!</string>
./app/src/main/res/values-km/strings.xml: <string name="onboard_location_greeting">សូមស្វាគមន៍ %s!</string>
./app/src/main/res/values-am/strings.xml: <string name="onboard_location_greeting">እንኳን ደሕና መጡ %s!</string>
./app/src/main/res/values/strings.xml: <string name="onboard_location_greeting">Welcome %s!</string>
./app/src/main/res/values-pl/strings.xml: <string name="onboard_location_greeting">Witaj %s!</string>
./app/src/main/res/values-vi/strings.xml: <string name="onboard_location_greeting">Chào mừng %s!</string>
./app/src/main/res/values-sq/strings.xml: <string name="onboard_location_greeting">Mirë se erdhe %s!</string>
./app/src/main/res/values-ur/strings.xml: <string name="onboard_location_greeting">خوش آمدید %s!</string>
./app/src/main/res/values-sw/strings.xml: <string name="onboard_location_greeting">Karibu %s!</string>
./app/src/main/res/values-tr/strings.xml: <string name="onboard_location_greeting">Hoş geldiniz%s!</string>
./app/src/main/res/values-th/strings.xml: <string name="onboard_location_greeting">ยินดีต้อนรับ %s!</string>
./app/src/main/res/values-lt/strings.xml: <string name="onboard_location_greeting">Sveiki %s!</string>
./app/src/main/res/values-fr/strings.xml: <string name="onboard_location_greeting">Bienvenue %s !</string>
./app/src/main/res/values-es/strings.xml: <string name="onboard_location_greeting">Te damos la bienvenida %s!</string>
./app/src/main/res/values-fa-rAF/strings.xml: <string name="onboard_location_greeting">خوش آمدید %s!</string>
./app/src/main/res/values-bn/strings.xml: <string name="onboard_location_greeting">স্বাগত%s!</string>
./app/src/main/res/values-de/strings.xml: <string name="onboard_location_greeting">Willkommen %s!</string>
./app/src/main/res/values-ko/strings.xml: <string name="onboard_location_greeting">%s 환영합니다!</string>
./app/src/main/res/values-ha/strings.xml: <string name="onboard_location_greeting">Barka %s!</string>
./app/src/main/res/values-bs/strings.xml: <string name="onboard_location_greeting">Dobrodošli %s!</string>
./app/src/main/res/values-my/strings.xml: <string name="onboard_location_greeting">ကြိုဆိုပါတယ် %s။</string>
./app/src/main/res/values-ar/strings.xml: <string name="onboard_location_greeting">مرحبًا %s!</string>
./app/src/main/res/values-pt/strings.xml: <string name="onboard_location_greeting">Bem-vindo %s!</string>
./app/src/main/res/values-ps/strings.xml: <string name="onboard_location_greeting">ښه راغلاست%s!</string>
./app/src/main/res/values-uk/strings.xml: <string name="onboard_location_greeting">Ласкаво просимо, %s!</string>
./app/src/main/res/values-b+sr+Latn/strings.xml: <string name="onboard_location_greeting">Dobro došli %s!</string>
./app/src/main/res/values-so/strings.xml: <string name="onboard_location_greeting">Soo dhawow %s!</string>
`;
const regex = /res\/(\S+)\//;
const strs = [];
tx.split('\n').forEach(d => {
const [fileName, xml] = d.split(' ');
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xml, 'text/xml');
if (xmlDoc.getElementsByTagName('string').length) {
const match: any = fileName.match(regex);
if (match?.length > 1) {
const language = match[1];
strs.push([xmlDoc.getElementsByTagName('string')[0].textContent, language]);
}
}
});
console.log(strs.map(d => `'${d[0]}', // ${d[1]}`).join('\n'));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment