aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Corentin THOMASSET <corentin.thomasset74@gmail.com> 2023-06-19 23:14:44 +0200
committerGravatar GitHub <noreply@github.com> 2023-06-19 21:14:44 +0000
commit1b038c78269faf6854426a0b95c71aba65f5ff53 (patch)
tree80bc587ba5ec2fce83e9f6e1272b21847da9d1dd
parentec4c5337186723e6d0471e3ca03d411fdfa7af4e (diff)
downloadit-tools-1b038c78269faf6854426a0b95c71aba65f5ff53.tar.gz
it-tools-1b038c78269faf6854426a0b95c71aba65f5ff53.tar.zst
it-tools-1b038c78269faf6854426a0b95c71aba65f5ff53.zip
chore(i18n): tool scoped locales (#471)
-rw-r--r--locales/en.yml3
-rw-r--r--src/layouts/tool.layout.vue9
-rw-r--r--src/plugins/i18n.plugin.ts41
-rw-r--r--src/tools/token-generator/locales/en.yml9
-rw-r--r--src/tools/token-generator/locales/fr.yml9
-rw-r--r--src/tools/token-generator/token-generator.tool.vue9
6 files changed, 35 insertions, 45 deletions
diff --git a/locales/en.yml b/locales/en.yml
index 4982dc5..385e019 100644
--- a/locales/en.yml
+++ b/locales/en.yml
@@ -1,3 +1,4 @@
home:
categories:
- newestTools: "Newest tools"
+ newestTools: Newest tools
+
diff --git a/src/layouts/tool.layout.vue b/src/layouts/tool.layout.vue
index bdbb869..aa808f1 100644
--- a/src/layouts/tool.layout.vue
+++ b/src/layouts/tool.layout.vue
@@ -23,6 +23,11 @@ const head = computed<HeadObject>(() => ({
],
}));
useHead(head);
+const { t } = useI18n();
+
+const i18nKey = computed<string>(() => route.path.trim().replace('/', ''));
+const toolTitle = computed<string>(() => t(`tools.${i18nKey.value}.title`, String(route.meta.name)));
+const toolDescription = computed<string>(() => t(`tools.${i18nKey.value}.description`, String(route.meta.description)));
</script>
<template>
@@ -31,7 +36,7 @@ useHead(head);
<div class="tool-header">
<div flex flex-nowrap items-center justify-between>
<n-h1>
- {{ route.meta.name }}
+ {{ toolTitle }}
</n-h1>
<div>
@@ -42,7 +47,7 @@ useHead(head);
<div class="separator" />
<div class="description">
- {{ route.meta.description }}
+ {{ toolDescription }}
</div>
</div>
</div>
diff --git a/src/plugins/i18n.plugin.ts b/src/plugins/i18n.plugin.ts
index a1a1000..c38cdee 100644
--- a/src/plugins/i18n.plugin.ts
+++ b/src/plugins/i18n.plugin.ts
@@ -1,50 +1,15 @@
import type { App } from 'vue';
import { createI18n } from 'vue-i18n';
-import type { Locale } from 'vue-i18n';
+import messages from '@intlify/unplugin-vue-i18n/messages';
const i18n = createI18n({
legacy: false,
- locale: '',
- messages: {},
+ locale: 'en',
+ messages,
});
-const localesMap = Object.fromEntries(
- Object.entries(import.meta.glob('../../locales/*.yml'))
- .map(([path, loadLocale]) => [path.match(/([\w-]*)\.yml$/)?.[1], loadLocale]),
-) as Record<Locale, () => Promise<{ default: Record<string, string> }>>;
-
-export const availableLocales = Object.keys(localesMap);
-
-const loadedLanguages: string[] = [];
-
-function setI18nLanguage(lang: Locale) {
- i18n.global.locale.value = lang as any;
- if (typeof document !== 'undefined') {
- document.querySelector('html')?.setAttribute('lang', lang);
- }
- return lang;
-}
-
-export async function loadLanguageAsync(lang: string): Promise<Locale> {
- if (i18n.global.locale.value === lang) {
- return setI18nLanguage(lang);
- }
-
- if (loadedLanguages.includes(lang)) {
- return setI18nLanguage(lang);
- }
-
- const messages = await localesMap[lang]();
-
- i18n.global.setLocaleMessage(lang, messages.default);
- loadedLanguages.push(lang);
-
- return setI18nLanguage(lang);
-}
-
export const i18nPlugin = {
install: (app: App) => {
app.use(i18n);
- loadLanguageAsync('en');
},
};
diff --git a/src/tools/token-generator/locales/en.yml b/src/tools/token-generator/locales/en.yml
new file mode 100644
index 0000000..c2c0323
--- /dev/null
+++ b/src/tools/token-generator/locales/en.yml
@@ -0,0 +1,9 @@
+tools:
+ token-generator:
+ title: Token generator
+ description: Generate random string with the chars you want, uppercase or lowercase letters, numbers and/or symbols.
+
+ uppercase: Uppercase (ABC...)
+ lowercase: Lowercase (abc...)
+ numbers: Numbers (123...)
+ symbols: Symbols (!-;...) \ No newline at end of file
diff --git a/src/tools/token-generator/locales/fr.yml b/src/tools/token-generator/locales/fr.yml
new file mode 100644
index 0000000..e5f40d4
--- /dev/null
+++ b/src/tools/token-generator/locales/fr.yml
@@ -0,0 +1,9 @@
+tools:
+ token-generator:
+ title: Générateur de token
+ description: Génère une chaîne aléatoire avec les caractères que vous voulez, lettres majuscules ou minuscules, chiffres et/ou symboles.
+
+ uppercase: Majuscules (ABC...)
+ lowercase: Minuscules (abc...)
+ numbers: Chiffres (123...)
+ symbols: Symboles (!-;...)
diff --git a/src/tools/token-generator/token-generator.tool.vue b/src/tools/token-generator/token-generator.tool.vue
index 81b7b58..9c1c818 100644
--- a/src/tools/token-generator/token-generator.tool.vue
+++ b/src/tools/token-generator/token-generator.tool.vue
@@ -9,6 +9,7 @@ const withUppercase = useQueryParam({ name: 'uppercase', defaultValue: true });
const withLowercase = useQueryParam({ name: 'lowercase', defaultValue: true });
const withNumbers = useQueryParam({ name: 'numbers', defaultValue: true });
const withSymbols = useQueryParam({ name: 'symbols', defaultValue: false });
+const { t } = useI18n();
const [token, refreshToken] = computedRefreshable(() =>
createToken({
@@ -29,21 +30,21 @@ const { copy } = useCopy({ source: token, text: 'Token copied to the clipboard'
<n-form label-placement="left" label-width="140">
<div flex justify-center>
<div>
- <n-form-item label="Uppercase (ABC...)">
+ <n-form-item :label="t('tools.token-generator.uppercase')">
<n-switch v-model:value="withUppercase" />
</n-form-item>
- <n-form-item label="Lowercase (abc...)">
+ <n-form-item :label="t('tools.token-generator.lowercase')">
<n-switch v-model:value="withLowercase" />
</n-form-item>
</div>
<div>
- <n-form-item label="Numbers (012...)">
+ <n-form-item :label="t('tools.token-generator.numbers')">
<n-switch v-model:value="withNumbers" />
</n-form-item>
- <n-form-item label="Symbols (;-!...)">
+ <n-form-item :label="t('tools.token-generator.symbols')">
<n-switch v-model:value="withSymbols" />
</n-form-item>
</div>
ite-fork'>vite-fork Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/www/public/assets/fonts/ibm-plex-sans/ibm-plex-sans-v9-latin-regular.woff (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2021-09-15Update stats.ts (#1376)Gravatar Fred K. Schott 2-1/+6
2021-09-15Expose slots to components (#1368)Gravatar Jonathan Neal 10-0/+169
2021-09-15[ci] collect statsGravatar FredKSchott 1-0/+1
2021-09-14Revert "fix bad ci paths"Gravatar Fred K. Schott 1-5/+5
2021-09-15[ci] yarn formatGravatar FredKSchott 1-0/+1
2021-09-14Version Packages (#1358)astro@0.20.6@astrojs/renderer-vue@0.1.8@astrojs/renderer-svelte@0.1.2@astrojs/renderer-solid@0.1.1@astrojs/renderer-react@0.2.1@astrojs/renderer-preact@0.2.2@astrojs/renderer-lit@0.1.1Gravatar github-actions[bot] 41-70/+91
2021-09-14fix bad ci pathsGravatar Fred K. Schott 1-5/+5
2021-09-14update changesetsGravatar Fred K. Schott 1-1/+1
2021-09-14Fix passing Markdown content through props (#1259) (#1343)Gravatar kelvinsjk 4-0/+22
2021-09-14Improve stats logging to use `pretty-bytes` so that 20B doesn't get output as...Gravatar Caleb Jasik 4-2/+13
2021-09-14[ci] yarn formatGravatar FredKSchott 1-1/+1
2021-09-14Merge "Remove check for referenced files" (#1196)Gravatar (none) 6-6/+45
2021-09-14Docs: Add READMEs for renderers (#1351)Gravatar Drew Powers 8-1/+184
2021-09-14Update deployment docs for Netlify deployment (#1361)Gravatar Cassidy Williams 1-7/+9
2021-09-14Delete perfect-kids-occur.md (#1372)Gravatar Fred K. Schott 1-5/+0
2021-09-14[ci] yarn formatGravatar FredKSchott 1-15/+10
2021-09-14Self-host homepage fonts to improve page load speed (#1370)Gravatar mundry 14-5/+52
2021-09-14Add types to examples and docs (#1347)Gravatar Matthew Phillips 8-20/+60
2021-09-14[ci] collect statsGravatar FredKSchott 1-0/+1
2021-09-13Fix typo (#1360)Gravatar Marcus Otterström 1-1/+1
2021-09-13Disclaimer for Github pages / jekyll quirk (#1355)Gravatar Tc001 2-0/+7
2021-09-13fix outdated lockfile issue (#1357)Gravatar Fred K. Schott 1-3/+1
2021-09-13Add `astro.build/play` link (#1359)Gravatar Nate Moore 1-0/+6
2021-09-13[ci] yarn formatGravatar FredKSchott 2-8/+7
2021-09-13Add a new lockfile (#1356)Gravatar Matthew Phillips 1-19/+19
2021-09-13[ci] collect statsGravatar FredKSchott 1-0/+1
2021-09-12[ci] collect statsGravatar FredKSchott 1-0/+1
2021-09-11[ci] collect statsGravatar FredKSchott 1-0/+1
2021-09-10Prevent removing CSS preloads during bundling (#1326)Gravatar Bartek Igielski 8-18/+96
2021-09-10Fix typos in Netlify sponsorship announcement blog post (#1346)Gravatar mundry 1-4/+4
2021-09-10[ci] collect statsGravatar FredKSchott 2-1/+2
2021-09-09blog: announce netlify sponsorship (#1345)Gravatar Fred K. Schott 4-5/+64
2021-09-09Version Packages (#1344)Gravatar github-actions[bot] 29-53/+42
2021-09-09Revert "Version Packages (#1303)"Gravatar Fred K. Schott 29-42/+53
2021-09-09update lockfileastro@0.20.5@astrojs/markdown-support@0.3.1Gravatar Fred K. Schott 1-9/+9
2021-09-09Version Packages (#1303)Gravatar github-actions[bot] 29-53/+42
2021-09-09[ci] collect statsGravatar FredKSchott 2-1/+2
2021-09-08Update netlify deploy instructions for `.nvmrc` syntax (#1337)Gravatar Caleb Jasik 1-1/+1
2021-09-08[ci] yarn formatGravatar jasikpark 1-1/+0