strapi-plugin-ja-pack
Version:
Translate Strapi's admin panel into Japanese.
74 lines (73 loc) • 2.36 kB
JavaScript
const pluginId = "ja-pack";
const translationBaseKey = "strapi-plugin-ja-pack";
const index = {
register(app) {
const hasOriginKey = (app2) => {
const hasJaLocale = app2.configurations.translations && app2.configurations.translations.ja;
if (!hasJaLocale) {
return false;
}
const hasOriginKeys = app2.configurations.translations.ja[translationBaseKey];
if (!hasOriginKeys) {
return false;
}
return true;
};
app.registerHook("Admin/CM/pages/ListView/inject-column-in-table", (e) => {
if (!hasOriginKey(app)) {
return e;
}
if (e.displayedHeaders && e.displayedHeaders.length > 0) {
e.displayedHeaders = e.displayedHeaders.map((displayHeader) => {
const defaultLabel = displayHeader.label;
if (app.configurations.translations.ja[translationBaseKey][defaultLabel]) {
displayHeader.label = app.configurations.translations.ja[translationBaseKey][defaultLabel];
}
return displayHeader;
});
}
return e;
});
app.registerHook("Admin/CM/pages/EditView/mutate-edit-view-layout", (e) => {
const hasLayout = e.layout && e.layout.layout;
if (!hasLayout) {
return e;
}
if (!hasOriginKey(app)) {
return e;
}
const { layout } = e.layout;
const recursiveTranslate = (layout2, app2) => {
if (Array.isArray(layout2)) {
for (let i = 0; i < layout2.length; i++) {
recursiveTranslate(layout2[i], app2);
}
} else {
const defaultLabel = layout2.label;
if (app2.configurations.translations.ja[translationBaseKey][defaultLabel]) {
layout2.label = app2.configurations.translations.ja[translationBaseKey][defaultLabel];
}
}
};
recursiveTranslate(layout, app);
return e;
});
},
bootstrap() {
},
async registerTrads({ locales }) {
if (!locales.some((locale) => locale === "ja")) {
return [];
}
const translations = await import("../_chunks/ja-2x9nB-bJ.mjs");
const jaMessages = translations.default;
jaMessages[`${pluginId}.plugin.name`] = "Strapi 日本語プラグイン";
return Promise.resolve([{
data: jaMessages,
locale: "ja"
}]);
}
};
export {
index as default
};