working on i18n... (a lot to do...)

This commit is contained in:
Matteo Manzinello 2020-06-10 19:19:38 +02:00
parent 301ef64611
commit 13e8e9e828
6 changed files with 61 additions and 17 deletions

View File

@ -1,3 +0,0 @@
{
"open_in": "open in "
}

View File

@ -1,3 +0,0 @@
{
"open_in": "apri con "
}

3
mailgo.d.ts vendored
View File

@ -4,7 +4,8 @@
export type MailgoConfig = {
initEvent?: string;
lang?: string;
defaultLang?: string;
forceLang?: boolean;
// TODO here mailgo configurations!
};

View File

@ -1,3 +1,7 @@
// i18n for mailgo
import i18n from "./i18n/i18n";
// default lang
const DEFAULT_LANG = "en";
// links
const MAILTO = "mailto:";
const TEL = "tel:";
@ -22,6 +26,17 @@ let gmail, outlook, open, telegram, wa, skype, call, copyMail, copyTel;
* the function that creates the mailgo elements in DOM
*/
const mailgoInit = (mailgoConfig) => {
// default language
let lang = DEFAULT_LANG;
// translations
let translations = i18n.translations;
// if a default language is defined use it
if (mailgoConfig.defaultLang &&
i18n.languages.includes(mailgoConfig.defaultLang)) {
lang = mailgoConfig.defaultLang;
}
// strings
let strings = translations[lang];
// mailgo mail
{
// modal
@ -93,7 +108,7 @@ const mailgoInit = (mailgoConfig) => {
gmail.href = DEFAULT_BTN_HREF;
gmail.classList.add("m-open");
gmail.classList.add("m-gmail");
gmail.appendChild(createTextNode("open in "));
gmail.appendChild(createTextNode(strings.open_in));
let gmailSpan = createElement(span);
gmailSpan.className = "w-500";
gmailSpan.appendChild(createTextNode("Gmail"));
@ -105,7 +120,7 @@ const mailgoInit = (mailgoConfig) => {
outlook.href = DEFAULT_BTN_HREF;
outlook.classList.add("m-open");
outlook.classList.add("m-outlook");
outlook.appendChild(createTextNode("open in "));
outlook.appendChild(createTextNode(strings.open_in));
let outlookSpan = createElement(span);
outlookSpan.className = "w-500";
outlookSpan.appendChild(createTextNode("Outlook"));
@ -165,7 +180,7 @@ const mailgoInit = (mailgoConfig) => {
telegram.classList.add("m-tg");
// by default not display
telegram.style.display = "none";
telegram.appendChild(createTextNode("open in "));
telegram.appendChild(createTextNode(strings.open_in));
let telegramSpan = createElement(span);
telegramSpan.className = "w-500";
telegramSpan.appendChild(createTextNode("Telegram"));
@ -177,7 +192,7 @@ const mailgoInit = (mailgoConfig) => {
wa.href = DEFAULT_BTN_HREF;
wa.classList.add("m-open");
wa.classList.add("m-wa");
wa.appendChild(createTextNode("open in "));
wa.appendChild(createTextNode(strings.open_in));
let waSpan = createElement(span);
waSpan.className = "w-500";
waSpan.appendChild(createTextNode("WhatsApp"));
@ -189,7 +204,7 @@ const mailgoInit = (mailgoConfig) => {
skype.href = DEFAULT_BTN_HREF;
skype.classList.add("m-open");
skype.classList.add("m-skype");
skype.appendChild(createTextNode("open in "));
skype.appendChild(createTextNode(strings.open_in));
let skypeSpan = createElement(span);
skypeSpan.className = "w-500";
skypeSpan.appendChild(createTextNode("Skype"));

11
src/i18n/i18n.js Normal file
View File

@ -0,0 +1,11 @@
export default {
languages: ["en", "it"],
translations: {
en: {
open_in: "open in ",
},
it: {
open_in: "apri con ",
},
},
};

View File

@ -1,5 +1,11 @@
import { MailgoConfig } from "../mailgo";
// i18n for mailgo
import i18n from "./i18n/i18n";
// default lang
const DEFAULT_LANG = "en";
// links
const MAILTO: string = "mailto:";
const TEL: string = "tel:";
@ -58,6 +64,23 @@ let gmail: HTMLLinkElement,
* the function that creates the mailgo elements in DOM
*/
const mailgoInit = (mailgoConfig?: MailgoConfig): void => {
// default language
let lang = DEFAULT_LANG;
// translations
let translations: any = i18n.translations;
// if a default language is defined use it
if (
mailgoConfig.defaultLang &&
i18n.languages.includes(mailgoConfig.defaultLang)
) {
lang = mailgoConfig.defaultLang;
}
// strings
let strings: any = translations[lang];
// mailgo mail
{
// modal
@ -139,7 +162,7 @@ const mailgoInit = (mailgoConfig?: MailgoConfig): void => {
gmail.href = DEFAULT_BTN_HREF;
gmail.classList.add("m-open");
gmail.classList.add("m-gmail");
gmail.appendChild(createTextNode("open in "));
gmail.appendChild(createTextNode(strings.open_in));
let gmailSpan = createElement(span);
gmailSpan.className = "w-500";
gmailSpan.appendChild(createTextNode("Gmail"));
@ -153,7 +176,7 @@ const mailgoInit = (mailgoConfig?: MailgoConfig): void => {
outlook.href = DEFAULT_BTN_HREF;
outlook.classList.add("m-open");
outlook.classList.add("m-outlook");
outlook.appendChild(createTextNode("open in "));
outlook.appendChild(createTextNode(strings.open_in));
let outlookSpan = createElement(span);
outlookSpan.className = "w-500";
outlookSpan.appendChild(createTextNode("Outlook"));
@ -227,7 +250,7 @@ const mailgoInit = (mailgoConfig?: MailgoConfig): void => {
// by default not display
telegram.style.display = "none";
telegram.appendChild(createTextNode("open in "));
telegram.appendChild(createTextNode(strings.open_in));
let telegramSpan = createElement(span);
telegramSpan.className = "w-500";
telegramSpan.appendChild(createTextNode("Telegram"));
@ -241,7 +264,7 @@ const mailgoInit = (mailgoConfig?: MailgoConfig): void => {
wa.href = DEFAULT_BTN_HREF;
wa.classList.add("m-open");
wa.classList.add("m-wa");
wa.appendChild(createTextNode("open in "));
wa.appendChild(createTextNode(strings.open_in));
let waSpan = createElement(span);
waSpan.className = "w-500";
waSpan.appendChild(createTextNode("WhatsApp"));
@ -255,7 +278,7 @@ const mailgoInit = (mailgoConfig?: MailgoConfig): void => {
skype.href = DEFAULT_BTN_HREF;
skype.classList.add("m-open");
skype.classList.add("m-skype");
skype.appendChild(createTextNode("open in "));
skype.appendChild(createTextNode(strings.open_in));
let skypeSpan = createElement(span);
skypeSpan.className = "w-500";
skypeSpan.appendChild(createTextNode("Skype"));