diff --git a/components/NotByAI.js b/components/NotByAI.js index a92921da..b8c99e0a 100644 --- a/components/NotByAI.js +++ b/components/NotByAI.js @@ -1,5 +1,54 @@ import { useGlobal } from '@/lib/global' +const LANGS = { + 'en-US': 'en', + 'zh-CN': 'zh', + 'zh-HK': 'zh-HK', + 'zh-TW': 'zh-TW', + 'fr-FR': 'fr', + 'tr-TR': 'tr', + 'ja-JP': 'ja' +} + +/** + * 获取当前not-by-ai文件路径 + * 如果匹配到完整的“国家-地区”语言,则显示国家的语言 + * @returns string + */ +export function generateNotByAiPath(langString) { + const supportedLocales = Object.keys(LANGS) + let userLocale + + // 将语言字符串拆分为语言和地区代码,例如将 "zh-CN" 拆分为 "zh" 和 "CN" + const [language, region] = langString?.split(/[-_]/) + + // 优先匹配语言和地区都匹配的情况 + const specificLocale = `${language}-${region}` + if (supportedLocales.includes(specificLocale)) { + userLocale = LANGS[specificLocale] + } + + // 然后尝试匹配只有语言匹配的情况 + if (!userLocale) { + const languageOnlyLocales = supportedLocales.filter(locale => + locale.startsWith(language) + ) + if (languageOnlyLocales.length > 0) { + userLocale = LANGS[languageOnlyLocales[0]] + } + } + + // 如果还没匹配到,则返回最接近的 + if (!userLocale) { + const fallbackLocale = supportedLocales.find(locale => + locale.startsWith('en') + ) + userLocale = LANGS[fallbackLocale] + } + + return userLocale ?? 'zh' +} + /** * 版权声明 * @returns @@ -10,7 +59,7 @@ export default function NotByAI() { return ( not-by-ai ) diff --git a/public/svg/not-by-ai/en-US/Written-By-Human-Not-By-AI-Badge-black.svg b/public/svg/not-by-ai/en/Written-By-Human-Not-By-AI-Badge-black.svg similarity index 100% rename from public/svg/not-by-ai/en-US/Written-By-Human-Not-By-AI-Badge-black.svg rename to public/svg/not-by-ai/en/Written-By-Human-Not-By-AI-Badge-black.svg diff --git a/public/svg/not-by-ai/en-US/Written-By-Human-Not-By-AI-Badge-white.svg b/public/svg/not-by-ai/en/Written-By-Human-Not-By-AI-Badge-white.svg similarity index 100% rename from public/svg/not-by-ai/en-US/Written-By-Human-Not-By-AI-Badge-white.svg rename to public/svg/not-by-ai/en/Written-By-Human-Not-By-AI-Badge-white.svg diff --git a/public/svg/not-by-ai/fr-FR/Written-By-Human-Not-By-AI-Badge-black.svg b/public/svg/not-by-ai/fr/Written-By-Human-Not-By-AI-Badge-black.svg similarity index 100% rename from public/svg/not-by-ai/fr-FR/Written-By-Human-Not-By-AI-Badge-black.svg rename to public/svg/not-by-ai/fr/Written-By-Human-Not-By-AI-Badge-black.svg diff --git a/public/svg/not-by-ai/fr-FR/Written-By-Human-Not-By-AI-Badge-white.svg b/public/svg/not-by-ai/fr/Written-By-Human-Not-By-AI-Badge-white.svg similarity index 100% rename from public/svg/not-by-ai/fr-FR/Written-By-Human-Not-By-AI-Badge-white.svg rename to public/svg/not-by-ai/fr/Written-By-Human-Not-By-AI-Badge-white.svg diff --git a/public/svg/not-by-ai/ja-JP/Written-By-Human-Not-By-AI-Badge-black.svg b/public/svg/not-by-ai/ja/Written-By-Human-Not-By-AI-Badge-black.svg similarity index 100% rename from public/svg/not-by-ai/ja-JP/Written-By-Human-Not-By-AI-Badge-black.svg rename to public/svg/not-by-ai/ja/Written-By-Human-Not-By-AI-Badge-black.svg diff --git a/public/svg/not-by-ai/ja-JP/Written-By-Human-Not-By-AI-Badge-white.svg b/public/svg/not-by-ai/ja/Written-By-Human-Not-By-AI-Badge-white.svg similarity index 100% rename from public/svg/not-by-ai/ja-JP/Written-By-Human-Not-By-AI-Badge-white.svg rename to public/svg/not-by-ai/ja/Written-By-Human-Not-By-AI-Badge-white.svg diff --git a/public/svg/not-by-ai/tr-TR/Written-By-Human-Not-By-AI-Badge-black.svg b/public/svg/not-by-ai/tr/Written-By-Human-Not-By-AI-Badge-black.svg similarity index 100% rename from public/svg/not-by-ai/tr-TR/Written-By-Human-Not-By-AI-Badge-black.svg rename to public/svg/not-by-ai/tr/Written-By-Human-Not-By-AI-Badge-black.svg diff --git a/public/svg/not-by-ai/tr-TR/Written-By-Human-Not-By-AI-Badge-white.svg b/public/svg/not-by-ai/tr/Written-By-Human-Not-By-AI-Badge-white.svg similarity index 100% rename from public/svg/not-by-ai/tr-TR/Written-By-Human-Not-By-AI-Badge-white.svg rename to public/svg/not-by-ai/tr/Written-By-Human-Not-By-AI-Badge-white.svg diff --git a/public/svg/not-by-ai/zh-CN/Written-By-Human-Not-By-AI-Badge-black.svg b/public/svg/not-by-ai/zh/Written-By-Human-Not-By-AI-Badge-black.svg similarity index 100% rename from public/svg/not-by-ai/zh-CN/Written-By-Human-Not-By-AI-Badge-black.svg rename to public/svg/not-by-ai/zh/Written-By-Human-Not-By-AI-Badge-black.svg diff --git a/public/svg/not-by-ai/zh-CN/Written-By-Human-Not-By-AI-Badge-white.svg b/public/svg/not-by-ai/zh/Written-By-Human-Not-By-AI-Badge-white.svg similarity index 100% rename from public/svg/not-by-ai/zh-CN/Written-By-Human-Not-By-AI-Badge-white.svg rename to public/svg/not-by-ai/zh/Written-By-Human-Not-By-AI-Badge-white.svg