diff --git a/messages/ja.json b/messages/jpn.json similarity index 100% rename from messages/ja.json rename to messages/jpn.json diff --git a/next.config.mjs b/next.config.mjs index 56fe1f4..d94ad49 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -7,6 +7,14 @@ const withNextIntl = createNextIntlPlugin(); /** @type {import('next').NextConfig} */ const nextConfig = { pageExtensions: ["ts", "tsx", "js", "jsx", "md", "mdx"], + + redirects: async () => [ + { + source: "/ja", + destination: "/jpn", + permanent: true, + }, + ], }; export default withMDX(withNextIntl(nextConfig)); diff --git a/src/api/translate.ts b/src/api/translate.ts index 97d1a6d..b138185 100644 --- a/src/api/translate.ts +++ b/src/api/translate.ts @@ -40,7 +40,7 @@ export async function translate( const { source, target, dialect, pronoun, numReturnSequences = 1 } = params; let prompt: string = ""; - if (source === "ja" && target === "ain") { + if (source === "jpn" && target === "ain") { prompt = `translate Japanese to Ainu (${dialect}, ${pronoun}): ${input}`; } else { prompt = `translate Ainu (${dialect}, ${pronoun}) to Japanese: ${input}`; diff --git a/src/app/[locale]/_server.ts b/src/app/[locale]/_server.ts index 3e4d19b..88f8b45 100644 --- a/src/app/[locale]/_server.ts +++ b/src/app/[locale]/_server.ts @@ -142,7 +142,7 @@ export async function fetchTranslation( transcriptions: {}, }; - if (source === "ja") { + if (source === "jpn") { result.transcriptions.translation = { type: "kana", text: to_kana(translation), diff --git a/src/app/[locale]/about/ja.mdx b/src/app/[locale]/about/jpn.mdx similarity index 100% rename from src/app/[locale]/about/ja.mdx rename to src/app/[locale]/about/jpn.mdx diff --git a/src/app/[locale]/page.tsx b/src/app/[locale]/page.tsx index 12d0456..f724033 100644 --- a/src/app/[locale]/page.tsx +++ b/src/app/[locale]/page.tsx @@ -47,7 +47,7 @@ export default async function Home(props: HomeProps) { setRequestLocale(params.locale); const text = searchParams?.text; - const source = searchParams?.source ?? "ja"; + const source = searchParams?.source ?? "jpn"; const target = searchParams?.target ?? "ain"; const dialect = searchParams?.dialect ?? "沙流"; const pronoun = searchParams?.pronoun ?? "first"; @@ -102,7 +102,7 @@ export default async function Home(props: HomeProps) { action={`/${params.locale}`} defaultValues={{ text: text ?? "", - source: searchParams?.source ?? "ja", + source: searchParams?.source ?? "jpn", target: searchParams?.target ?? "ain", dialect, pronoun, diff --git a/src/app/sitemap.ts b/src/app/sitemap.ts index 400d3e2..a0494a2 100644 --- a/src/app/sitemap.ts +++ b/src/app/sitemap.ts @@ -3,7 +3,7 @@ import type { MetadataRoute } from "next"; export default function sitemap(): MetadataRoute.Sitemap { return [ { - url: "https://tunci.aynu.io/ja", + url: "https://tunci.aynu.io/jpn", lastModified: new Date(), alternates: { languages: { @@ -12,7 +12,7 @@ export default function sitemap(): MetadataRoute.Sitemap { }, }, { - url: "https://tunci.aynu.io/ja/about", + url: "https://tunci.aynu.io/jpn/about", lastModified: new Date(), alternates: { languages: { diff --git a/src/components/Composer/Composer.tsx b/src/components/Composer/Composer.tsx index 68893dd..ca8d0c4 100644 --- a/src/components/Composer/Composer.tsx +++ b/src/components/Composer/Composer.tsx @@ -85,7 +85,7 @@ export const Composer: FC = (props) => { const handleChangeSource = (source: string): void => { setSource(source); - setTarget(source === "ja" ? "ain" : "ja"); + setTarget(source === "jpn" ? "ain" : "jpn"); if (translation && textareaRef.current && !dirty) { textareaRef.current.value = translation; @@ -95,7 +95,7 @@ export const Composer: FC = (props) => { const handleChangeTarget = (target: string): void => { setTarget(target); - setSource(target === "ja" ? "ain" : "ja"); + setSource(target === "jpn" ? "ain" : "jpn"); if (translation && textareaRef.current && !dirty) { textareaRef.current.value = translation; diff --git a/src/components/Composer/ComposerInput.tsx b/src/components/Composer/ComposerInput.tsx index 90e7fe7..13e8e90 100644 --- a/src/components/Composer/ComposerInput.tsx +++ b/src/components/Composer/ComposerInput.tsx @@ -73,9 +73,9 @@ export const ComposerInput: FC = (props) => { const textareaLanguageRelatedAttributes: ComponentProps< typeof TextareaAutosize > = useMemo(() => { - if (source === "ja") { + if (source === "jpn") { return { - lang: "ja", + lang: "jpn", }; } diff --git a/src/components/Composer/LanguageSelector.tsx b/src/components/Composer/LanguageSelector.tsx index d7c1672..015fa8d 100644 --- a/src/components/Composer/LanguageSelector.tsx +++ b/src/components/Composer/LanguageSelector.tsx @@ -28,7 +28,7 @@ export const LanguageSelector: FC = (props) => { aria-labelledby={id} onValueChange={onChange} > - + {t("japanese")} {t("ainu")} diff --git a/src/components/ContentInfo/ContentInfo.tsx b/src/components/ContentInfo/ContentInfo.tsx index 1c187fa..05fec5d 100644 --- a/src/components/ContentInfo/ContentInfo.tsx +++ b/src/components/ContentInfo/ContentInfo.tsx @@ -27,13 +27,7 @@ export const ContentInfo: FC = async () => {
  • - - Aynu itak - + Aynu itak
  • @@ -41,13 +35,7 @@ export const ContentInfo: FC = async () => {
  • - - アイヌイタㇰ - + アイヌイタㇰ
  • @@ -55,9 +43,7 @@ export const ContentInfo: FC = async () => {
  • - - 日本語 - + 日本語
diff --git a/src/components/Entry/Entry.tsx b/src/components/Entry/Entry.tsx index 32fdcfb..f943bae 100644 --- a/src/components/Entry/Entry.tsx +++ b/src/components/Entry/Entry.tsx @@ -46,7 +46,7 @@ const EntryRoot: React.FC = (props) => {
{parse(textHTML)}
-
{parse(translationHTML)}
+
{parse(translationHTML)}
diff --git a/src/i18n.ts b/src/i18n.ts index 4528cd9..6012d9d 100644 --- a/src/i18n.ts +++ b/src/i18n.ts @@ -3,7 +3,7 @@ import { getRequestConfig } from "next-intl/server"; import { routing } from "./i18n/routing"; // Can be imported from a shared config -export const locales = ["ain-Latn", "ain-Kana", "ja"]; +export const locales = ["ain-Latn", "ain-Kana", "jpn"]; export default getRequestConfig(async ({ requestLocale }) => { let locale = await requestLocale; diff --git a/src/i18n/routing.ts b/src/i18n/routing.ts index ae4a52f..9c70617 100644 --- a/src/i18n/routing.ts +++ b/src/i18n/routing.ts @@ -2,7 +2,7 @@ import { createNavigation } from "next-intl/navigation"; import { defineRouting } from "next-intl/routing"; export const routing = defineRouting({ - locales: ["ain-Latn", "ain-Kana", "ja"] as string[], + locales: ["ain-Latn", "ain-Kana", "jpn"] as string[], defaultLocale: "ain-Latn", }); diff --git a/src/middleware.ts b/src/middleware.ts index b384800..e23dfaf 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -6,5 +6,5 @@ export default createMiddleware(routing); export const config = { // Match only internationalized pathnames - matcher: ["/", "/(ain-Latn|ain-Kana|ja)/:path*"], + matcher: ["/", "/(ain-Latn|ain-Kana|jpn)/:path*"], };