Hoppa till innehåll

Internationalisering

Lägg till flerspråksstöd i din app. Använd Proyecta Content API för redaktionell lokalisering, eller be AI:n koppla ihop ett i18n-ramverk direkt i koden.

Proyecta stödjer två kompletterande tillvägagångssätt för att internationalisera de appar du bygger:

  1. Innehållslokalisering via Proyecta Content API — för redaktionellt innehåll (blogginlägg, vanliga frågor, marknadsföringstexter) som behöver översättas till flera språk
  2. Kod-nivå i18n via ett översättningsramverk — för UI-strängar, datum, valutor och byte av locale vid körningstid

Båda fungerar redan idag. Vilket alternativ du behöver beror på vad du ska översätta.

Proyecta som byggverktyg levereras med 24 locales, så produkten är väl insatt i i18n. Samma mönster gäller för de appar du bygger i det.

Alternativ 1: Innehållslokalisering (Proyecta Content API)

Section titled “Alternativ 1: Innehållslokalisering (Proyecta Content API)”

Om du bygger en innehållstung webbplats — blogg, kunskapsbas, marknadsföringssidor, produktkatalog — använd Content API:s inbyggda stöd för locales.

// Create the locales you support
await proyecta.content.locales.create({
/* code: 'en', name: 'English' */
});
await proyecta.content.locales.create({
/* code: 'es', name: 'Español' */
});
await proyecta.content.locales.create({
/* code: 'fr', name: 'Français' */
});
// Then create entries that exist in multiple locales — fetch the right
// translation per request based on the user's locale.

Det här är rätt val när:

  • Redaktörer som inte skriver kod behöver översätta innehåll
  • Du vill att översättningar ska kunna versionshanteras
  • Du behöver locale-specifik publicering (schemalagd publicering kommer snart — poster kräver för tillfället manuell publicering via API:t)

Se Innehållshantering för hela Content API:t.

För UI-strängar — etiketter, knappar, felmeddelanden, datum, valutor — be AI:n koppla ihop ett i18n-ramverk direkt i ditt projekt:

Add internationalization to my app.
Support English, Spanish, French, and Arabic.
Add message catalogs in src/locales/.
Add a language switcher in the header.
Use locale-prefixed URLs like /en/about and /es/about.
Make sure RTL layout works correctly for Arabic.

AI:n kommer att:

  1. Välja ett ramverk — AI:n använder i18next med react-i18next (Proyectas standard)
  2. Skapa katalogfiler i src/locales/ (en JSON per språk)
  3. Omsluta text i t()-anrop (från react-i18nexts useTranslation-hook)
  4. Lägga till en språkväxlare som komponent
  5. Koppla URL-routing med locale-prefix
  6. Hantera RTL-layouter (dir="rtl") för arabiska, hebreiska osv.
  7. Formatera siffror, datum och valutor per locale

När ditt basspråk är på plats är AI:n utmärkt på att producera övriga katalogfiler:

  • "Translate every string in src/locales/en.json into Spanish, French, German, and Japanese. Use natural, idiomatic phrasing — don't translate brand names."
  • "My app is fully built in English. Add Spanish translations for everything and an es/ route prefix."

För känsligt innehåll (juridisk text, medicin, finans) bör en mänsklig översättare granska AI:ns output innan du publicerar.

De flesta riktiga appar använder båda: kod-nivå i18n för UI-krom (knappar, felmeddelanden, navigering) och Content API för redaktionellt innehåll (artiklar, produktbeskrivningar). De fungerar utmärkt ihop — ditt i18n-ramverk hanterar katalogfilerna vid byggtid, medan Content API levererar lokaliserade poster vid körningstid.

  1. Välj ditt basspråk och slutför texterna först. Att översätta ett rörligt mål är plågsamt.
  2. Samla översättningar i omgångar. Översätt inte löpande — vänta tills en funktion är stabil.
  3. Testa RTL tidigt om du stödjer arabiska eller hebreiska. RTL-buggar döljer sig tills du faktiskt tittar.
  4. Inkludera lang och dir<html>. Webbläsare och skärmläsare är beroende av det.
  5. Använd Intl för formatering. Rulla inte egna datum- eller valutaformateringar — använd Intl.DateTimeFormat, Intl.NumberFormat.
  • Gränssnitt för locale-hantering i byggverktyget — välj locales, se översättningstäckning och redigera kataloger utan att lämna Proyecta
  • Auto-översättning vid sparande för nya strängar
  • i18n-färdiga projektmallar med ramverket förkonfigurerat