Skip to content

Commit

Permalink
feat(translation): add new variable
Browse files Browse the repository at this point in the history
update translation
  • Loading branch information
Mara-Li committed Jul 13, 2022
1 parent bfb5e1c commit de4b7c1
Show file tree
Hide file tree
Showing 6 changed files with 116 additions and 17 deletions.
6 changes: 4 additions & 2 deletions mkdocsPublisher/i18n/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,20 @@
import { moment } from 'obsidian';
import enUS from './locales/en-us';
import zhCN from './locales/zh-cn';
import fr from "./locales/fr-fr";

const localeMap: { [k: string]: Partial<typeof enUS> } = {
enUS,
'zh-cn': zhCN,
'fr': fr
};

const locale = localeMap[moment.locale()];

export interface StringFunc {
(params: string): string;
(params: string|string[]): string;
}

export default function t(str: keyof typeof enUS): string | StringFunc {
return (locale && locale[str]) || enUS[str];
}
}
8 changes: 7 additions & 1 deletion mkdocsPublisher/i18n/locales/en-us.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,18 @@ export default {
editorMenu: "Editor Menu",
editorMenuDesc: "Add a sharing commands in the right-click menu",

//commands menus
shareViewFiles:(viewFile:string): string => `Share "${viewFile}" with Mkdocs Publisher`,

//notice
unablePublishNote: (fileInfo: string): string => `Unable to publish note ${fileInfo},skipping it`,
errorPublish: (repoInfo: string): string => `Error publishing to ${repoInfo}.`,
unablePublishMultiNotes: "Unable to publish multiple notes, something went wrong.",
startingClean: (repoInfo: string): string => `Starting cleaning ${repoInfo}`,
scanningRepo: "Scanning the repository, may take a while...",
foundNoteToSend: (noteLength: string)=> `Found ${noteLength} new notes to send`,
noNewNote: "No new notes to share."
noNewNote: "No new notes to share.",
successfullPublish:(noticeValue: string[])=>`Successfully published ${noticeValue[0]} to ${noticeValue[1]}.`,
waitingWorkflow: "Now, waiting for the workflow to be completed...",
sendMessage:(noticeValue: string[])=>`Send ${noticeValue[0]} to ${noticeValue[1]}${noticeValue[2]}`
}
80 changes: 80 additions & 0 deletions mkdocsPublisher/i18n/locales/fr-fr.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
export default {
//command
shareActiveFile: "Partager le fichier actif",
publisherDeleteClean: "Suppression des fichiers non partagés et/ou supprimé du dépôt ",
uploadAllNotes: "Publier toutes les notes partagées",
uploadNewNotes: "Publier les nouvelles notes",
uploadAllNewEditedNote: "Publier toutes les notes nouvelles et modifiées depuis le dernier envoi.",
uploadAllEditedNote: "Publier toutes les notes éditées depuis le dernier envoie",
//setting tabs
githubConfiguration: "Configuration GitHub",
repoName: "Nom du dépôt",
repoNameDesc: "Le nom du dépôt dans lequel vous enregistrez votre blog",
mkdocsTemplate: "mkdocs-template",
githubUsername: "Nom d'utilisateur GitHub",
githubUsernameDesc: "Votre nom d'utilisateur GitHub",
ghTokenDesc: "Un token GitHub avec autorisation de dépôt. Vous pouvez le générer ",
here: "ici",
githubToken: "Token GitHub",
uploadConfig: "Configuration d'envoie",
pathSetting: "Paramètres du chemin d'accès",
folderBehavior: "Comportement du dossier",
folderBehaviorDesc: "Choisissez entre un dossier fixe, la valeur d'une clé de métadonnée ou votre chemin relatif dans Obsidian.",
fixedFolder: "Dossier fixé",
yaml: "Clé de métadonnée",
obsidianPath: "Chemin Obsidian",
defaultFolder: "Dossier par défaut",
defaultFolderDesc: "Définir le dossier de réception par défaut",
defaultFolderPlaceholder: "docs",
pathRemoving: "Suppression de chemin",
pathRemovingDesc: "Permettre de publier uniquement le sous-dossier en supprimant le chemin avant celui-ci :",
pathRemovingPlaceholder: "Blog",
frontmatterKey: "Clé de métadonnées",
frontmatterKeyDesc: "Définir la clé où obtenir la valeur du dossier",
frontmatterKeyPlaceholder: "catégorie",
rootFolder: "Dossier racine",
rootFolderDesc: "Ajoutez ce chemin au dossier défini par la clé de métadonnées.",
linksConversion: "Conversion des liens",
folderNote: "Note de dossier",
folderNoteDesc: "Renommer les fichiers portant le même nom que leur dossier (ou catégorie) parent \"index.md\".",
internalsLinks: "Liens internes",
internalsLinksDesc: "Convertir le lien interne dans le fichier partagé pour qu'il corresponde aux paramètres du dossier",
wikilinks: "Wikilinks",
wikilinksDesc: "Convertir les liens Wikilinks en liens markdown, sans en modifier le contenu",
embed: "Transclusion",
transferImage: "Transférer les images",
transferImageDesc: "Envoyer les images intégrées dans un fichier dans le dépôt.",
transferEmbeddedNotes: "Transférer les notes transcluent.",
transferEmbeddedNotesDesc: "Envoyez des notes transcluent dans un fichier partagé dans le dépôt. Seuls les fichiers partagés seront envoyés !",
defaultImageFolder: "Dossier d'images par défaut",
defaultImageFolderDesc: "Pour utiliser un dossier différent de celui par défaut pour les images",
githubActionName: "Nom de l'action GitHub",
githubActionNameDesc: "Si vous souhaitez activer une action github lorsque le plugin pousse le fichier, indiquez le nom du fichier (dans votre dossier .github/worfklows).",
autoCleanUp: "Auto-nettoyage",
autoCleanUpDesc: "Si le plugin doit retirer de votre dépôt les fichiers supprimés (arrêt de partage ou supprimé)",
excludedFiles: "Fichier exclus",
excludedFilesDesc: "Si vous voulez exclure certains dossiers du nettoyage automatique, définissez leur chemin.",
pluginSettings: "Paramètres du plugin",
shareKey: "Clé de partage",
shareKeyDesc: "La clé de métadonnées pour publier votre fichier sur le dépôt.",
excludedFolder: "Dossier exclus",
excludedFolderDesc: "Les fichiers dans ses dossiers ne seront jamais publier, quelle que soit l'état de la clé de partage. Séparez les noms de dossier par une virgule.",
fileMenu: "Menu \"Fichier\"",
fileMenuDesc: "Ajouter une commande de partage dans le menu \"Fichier\"",
editorMenu: "Menu \"Edition\"",
editorMenuDesc: "Ajouter une commande de partage dans le menu du clic droit",
//commands menus
shareViewFiles:(viewFile:string): string => `Partager "${viewFile}" avec Mkdocs Publisher`,

//notice
unablePublishNote: (fileInfo: string): string => `Impossible de publier la note ${fileInfo}, ignorée.`,
errorPublish: (repoInfo: string): string => `Erreur lors de la publication sur ${repoInfo}.`,
unablePublishMultiNotes: "Impossible de publier plusieurs notes, quelque chose s'est mal passé.",
startingClean: (repoInfo: string): string => `Début du nettoyage ${repoInfo}`,
scanningRepo: "Scan du dépôt, cela peut prendre un moment...",
foundNoteToSend: (noteLength: string)=> `Trouvé ${noteLength} nouvelles notes à envoyer`,
noNewNote: "Aucune nouvelle note à partager.",
successfullPublish:(noticeValue: string[])=>`Publication réussie de ${noticeValue[0]} vers ${noticeValue[1]}.`,
waitingWorkflow: "Maintenant, attente de la complétion du workflow...",
sendMessage:(noticeValue: string[])=>`Envoi de ${noticeValue[0]} à ${noticeValue[1]}${noticeValue[2]}`
}
10 changes: 8 additions & 2 deletions mkdocsPublisher/i18n/locales/zh-cn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,18 @@ export default {
fileMenuDesc: "在文件树添加右键分享命令",
editorMenu: "编辑器菜单",
editorMenuDesc: "在右键添加分享命令",
//commands
shareViewFiles:(viewFile:string): string => `Share "${viewFile}" with Mkdocs Publisher`,

//notice
unablePublishNote: (fileInfo: string): string => { return `不能上传文件${fileInfo},已跳过` },
errorPublish: (repoInfo: string): string => `上传至${repoInfo}错误!`,
unablePublishMultiNotes: "不能上传多个文件,出了点问题",
startingClean: (repoInfo: string): string => `开始清理 ${repoInfo}`,
scanningRepo: "扫描仓库中,稍等...",
foundNoteToSend: (noteLength: string)=> `发现 ${noteLength} 篇笔记需要上传`,
noNewNote: "没有新笔记需要上传."
}
noNewNote: "没有新笔记需要上传.",
successfullPublish:(noticeValue: string[])=>`Successfully published ${noticeValue[0]} to ${noticeValue[1]}.`,
waitingWorkflow: "Now, waiting for the workflow to be completed...",
sendMessage:(noticeValue: string[])=>`Send ${noticeValue[0]} to ${noticeValue[1]}${noticeValue[2]}`
}
10 changes: 3 additions & 7 deletions mkdocsPublisher/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
shareNewNote,
shareOneNote, shareOnlyEdited
} from "./utils/commands";
import t from "./i18n"
import t, {StringFunc} from "./i18n"


export default class MkdocsPublication extends Plugin {
Expand All @@ -38,9 +38,7 @@ export default class MkdocsPublication extends Plugin {
menu.addItem((item) => {
item.setSection('action');
item.setTitle(
'Share "' +
file.basename +
'" with Mkdocs Publisher'
(t("shareViewFiles") as StringFunc)(file.basename)
)
.setIcon("share")
.onClick(async () => {
Expand All @@ -62,9 +60,7 @@ export default class MkdocsPublication extends Plugin {
menu.addItem((item) => {
item.setSection('mkdocs-publisher');
item.setTitle(
'Share "' +
view.file.basename +
'" with Mkdocs Publisher'
(t("shareViewFiles") as StringFunc)(view.file.basename)
)
.setIcon("share")
.onClick(async () => {
Expand Down
19 changes: 14 additions & 5 deletions mkdocsPublisher/utils/utils.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import {App, Notice, TFile} from 'obsidian'
import {MkdocsPublicationSettings} from '../settings/interface'
import MkdocsPublish from "../githubInteraction/upload";
import t from '../i18n'
import type { StringFunc } from "../i18n";

function disablePublish (app: App, settings: MkdocsPublicationSettings, file:TFile) {
const fileCache = app.metadataCache.getFileCache(file)
Expand All @@ -18,14 +20,21 @@ function disablePublish (app: App, settings: MkdocsPublicationSettings, file:TFi
return meta[settings.shareKey]
}


async function noticeMessage(PublisherManager: MkdocsPublish, file: TFile | string, settings: MkdocsPublicationSettings) {
const noticeValue = (file instanceof TFile) ? '"' + file.basename + '"' : file
const msg = settings.workflowName.length>0? '.\nNow, waiting for the workflow to be completed...':'.'
new Notice('Send ' + noticeValue + ' to ' + settings.githubRepo + msg);
const successWorkflow = await PublisherManager.workflowGestion();
if (successWorkflow) {
if (settings.workflowName.length > 0) {
new Notice((t("sendMessage") as StringFunc)([noticeValue, settings.githubRepo, `.\n${t("waitingWorkflow")}`]));
const successWorkflow = await PublisherManager.workflowGestion();
if (successWorkflow) {
new Notice(
(t("successfullPublish") as StringFunc)([noticeValue, settings.githubRepo])
);
}
}
else {
new Notice(
"Successfully published " + noticeValue + " to " + settings.githubRepo + "."
(t("successfullPublish") as StringFunc)([noticeValue, settings.githubRepo])
);
}
}
Expand Down

0 comments on commit de4b7c1

Please sign in to comment.