diff --git a/.linguirc b/.linguirc new file mode 100644 index 00000000..d4dedaf7 --- /dev/null +++ b/.linguirc @@ -0,0 +1,24 @@ +{ + "catalogs": [{ + "path": "locale/{locale}/{name}", + "include": ["packages/{name}/"], + "exclude": [ + "packages/affix", + "packages/attention", + "packages/box", + "packages/breadcrumbs", + "packages/broadcast", + "packages/button", + "packages/card", + "packages/expandable", + "packages/select", + "packages/textfield", + "packages/toast", + "packages/utils" + ] + }], + "compileNamespace": "es", + "format": "po", + "locales": ["en","nb","fi"], + "sourceLocale": "en" +} \ No newline at end of file diff --git a/locale/en/alert.mjs b/locale/en/alert.mjs new file mode 100644 index 00000000..44d977ea --- /dev/null +++ b/locale/en/alert.mjs @@ -0,0 +1 @@ +/*eslint-disable*/export const messages=JSON.parse("{\"alert.positive.svg.aria-label\":\"Green checkmark\",\"alert.info.svg.aria-label\":\"Info\",\"alert.negative.svg.aria-label\":\"Red exclamation mark\",\"alert.warning.svg.aria-label\":\"Yellow exclamation mark\"}"); \ No newline at end of file diff --git a/locale/en/alert.po b/locale/en/alert.po new file mode 100644 index 00000000..c0cd038b --- /dev/null +++ b/locale/en/alert.po @@ -0,0 +1,34 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2023-03-27 10:38+0200\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: en\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#: packages/alert/svgs.js:11 +#, explicit-id +msgid "alert.positive.svg.aria-label" +msgstr "Green checkmark" + +#: packages/alert/svgs.js:16 +#, explicit-id +msgid "alert.info.svg.aria-label" +msgstr "Info" + +#: packages/alert/svgs.js:8 +#, explicit-id +msgid "alert.negative.svg.aria-label" +msgstr "Red exclamation mark" + +#: packages/alert/svgs.js:14 +#, explicit-id +msgid "alert.warning.svg.aria-label" +msgstr "Yellow exclamation mark" diff --git a/locale/fi/alert.mjs b/locale/fi/alert.mjs new file mode 100644 index 00000000..44d977ea --- /dev/null +++ b/locale/fi/alert.mjs @@ -0,0 +1 @@ +/*eslint-disable*/export const messages=JSON.parse("{\"alert.positive.svg.aria-label\":\"Green checkmark\",\"alert.info.svg.aria-label\":\"Info\",\"alert.negative.svg.aria-label\":\"Red exclamation mark\",\"alert.warning.svg.aria-label\":\"Yellow exclamation mark\"}"); \ No newline at end of file diff --git a/locale/fi/alert.po b/locale/fi/alert.po new file mode 100644 index 00000000..b7214349 --- /dev/null +++ b/locale/fi/alert.po @@ -0,0 +1,34 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2023-03-27 10:38+0200\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: fi\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#: packages/alert/svgs.js:11 +#, explicit-id +msgid "alert.positive.svg.aria-label" +msgstr "" + +#: packages/alert/svgs.js:16 +#, explicit-id +msgid "alert.info.svg.aria-label" +msgstr "" + +#: packages/alert/svgs.js:8 +#, explicit-id +msgid "alert.negative.svg.aria-label" +msgstr "" + +#: packages/alert/svgs.js:14 +#, explicit-id +msgid "alert.warning.svg.aria-label" +msgstr "" diff --git a/locale/nb/alert.mjs b/locale/nb/alert.mjs new file mode 100644 index 00000000..a18b7b12 --- /dev/null +++ b/locale/nb/alert.mjs @@ -0,0 +1 @@ +/*eslint-disable*/export const messages=JSON.parse("{\"alert.positive.svg.aria-label\":\"Grønn hake\",\"alert.info.svg.aria-label\":\"Info\",\"alert.negative.svg.aria-label\":\"Rødt utropstegn\",\"alert.warning.svg.aria-label\":\"Gult utropstegn\"}"); \ No newline at end of file diff --git a/locale/nb/alert.po b/locale/nb/alert.po new file mode 100644 index 00000000..558b45a4 --- /dev/null +++ b/locale/nb/alert.po @@ -0,0 +1,34 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2023-03-27 10:38+0200\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: nb\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#: packages/alert/svgs.js:11 +#, explicit-id +msgid "alert.positive.svg.aria-label" +msgstr "Grønn hake" + +#: packages/alert/svgs.js:16 +#, explicit-id +msgid "alert.info.svg.aria-label" +msgstr "Info" + +#: packages/alert/svgs.js:8 +#, explicit-id +msgid "alert.negative.svg.aria-label" +msgstr "Rødt utropstegn" + +#: packages/alert/svgs.js:14 +#, explicit-id +msgid "alert.warning.svg.aria-label" +msgstr "Gult utropstegn" diff --git a/package.json b/package.json index 1d2dcef2..51655d57 100644 --- a/package.json +++ b/package.json @@ -14,13 +14,16 @@ "types": "dist/index.d.ts", "scripts": { "build:api": "npx esbuild ./packages/toast/api.js --outdir=dist --target=es2017 --bundle --sourcemap --format=esm --minify", - "build:npm": "npx esbuild ./index.js --outdir=dist/ --target=es2017 --bundle --sourcemap --format=esm --minify", - "watch:npm": "npx esbuild ./index.js --outdir=dist/ --target=es2017 --bundle --sourcemap --format=esm --minify --watch", + "build:npm": "npx esbuild ./index.js --outdir=dist/ --target=es2022 --bundle --sourcemap --format=esm --minify", + "watch:npm": "npx esbuild ./index.js --outdir=dist/ --target=es2022 --bundle --sourcemap --format=esm --minify --watch", "build": "rimraf dist && npm run build:elements && tsc && npm run build:npm && npm run build:api", "format": "prettier --write . --ignore-path .gitignore", "lint": "npm run lint:format && npm run lint:eslint", "lint:format": "prettier --check . --ignore-path .gitignore", "lint:eslint": "eslint . --ext js,cjs,mjs --ignore-path .gitignore", + "locale:extract": "lingui extract --overwrite --clean", + "locale:compile": "lingui compile", + "locale": "npm run locale:extract && npm run locale:compile", "dev": "vite", "build:docs": "vite build && cp CNAME site", "eik:login": "eik login", @@ -45,6 +48,7 @@ "@eik/cli": "2.0.22", "@fabric-ds/css": "1.2.0", "@finn-no/browserslist-config": "3.0.0", + "@lingui/cli": "^4.0.0-next.4", "@semantic-release/changelog": "6.0.2", "@semantic-release/git": "10.0.1", "@stylelint/postcss-css-in-js": "0.38.0", @@ -84,6 +88,7 @@ "dependencies": { "@fabric-ds/core": "0.0.15", "@fabric-ds/icons": "0.6.7", + "@lingui/core": "^4.0.0-next.4", "@open-wc/testing": "3.1.7", "glob": "8.1.0", "html-format": "1.0.2", diff --git a/packages/alert/svgs.js b/packages/alert/svgs.js index d53ac0a5..a32051d5 100644 --- a/packages/alert/svgs.js +++ b/packages/alert/svgs.js @@ -1,7 +1,22 @@ import { html, svg } from 'lit'; +import { i18n } from '@lingui/core'; +import { initLocale } from '../utils/locale.js'; + +await initLocale('alert'); + +const negativeAria = i18n._( + /*i18n*/ { message: 'Red exclamation mark', id: 'alert.negative.svg.aria-label' }, +); +const positiveAria = i18n._( + /*i18n*/ { message: 'Green checkmark', id: 'alert.positive.svg.aria-label' }, +); +const warningAria = i18n._( + /*i18n*/ { message: 'Yellow exclamation mark', id: 'alert.warning.svg.aria-label' }, +); +const infoAria = i18n._(/*i18n*/ { message: 'Info', id: 'alert.info.svg.aria-label' }); export const negativeSvg = () => html` html``; export const positiveSvg = () => html` html` `; export const warningSvg = () => html` html` `; export const infoSvg = () => html` + <%- include('head.html'); -%>