Η καλύτερη λύση για τη διεθνοποίηση (i18n) σε εφαρμογές Next.js
Θέλετε να επεκτείνετε την εφαρμογή Next.js σας σε νέες αγορές; Το TacoTranslate καθιστά εξαιρετικά εύκολη την τοπικοποίηση του έργου σας Next.js, επιτρέποντάς σας να προσεγγίσετε ένα παγκόσμιο κοινό χωρίς ταλαιπωρία.
Γιατί να επιλέξετε το TacoTranslate για το Next.js;
- Απρόσκοπτη Ενσωμάτωση: Σχεδιασμένο ειδικά για εφαρμογές Next.js, το TacoTranslate ενσωματώνεται άψογα στην υπάρχουσα ροή εργασίας σας.
- Αυτόματη Συλλογή Συμβολοσειρών: Τέρμα στη χειροκίνητη διαχείριση αρχείων JSON. Το TacoTranslate συλλέγει αυτόματα τις συμβολοσειρές από τον κώδικά σας.
- Μεταφράσεις με Τεχνητή Νοημοσύνη: Εκμεταλλευτείτε τη δύναμη της τεχνητής νοημοσύνης για να παρέχετε μεταφράσεις ακριβείς στο πλαίσιο και κατάλληλες για τον τόνο της εφαρμογής σας.
- Άμεση Υποστήριξη Γλωσσών: Προσθέστε υποστήριξη για νέες γλώσσες με ένα μόνο κλικ, καθιστώντας την εφαρμογή σας προσβάσιμη παγκοσμίως.
Πώς λειτουργεί
Καθώς ο κόσμος γίνεται ολοένα και πιο παγκοσμιοποιημένος, γίνεται ολοένα και πιο σημαντικό για τους προγραμματιστές ιστού να δημιουργούν εφαρμογές που μπορούν να εξυπηρετήσουν χρήστες από διαφορετικές χώρες και πολιτισμούς. Ένας από τους βασικούς τρόπους για να το επιτύξετε είναι μέσω της διεθνοποίησης (i18n), η οποία σας επιτρέπει να προσαρμόσετε την εφαρμογή σας σε διαφορετικές γλώσσες, νομίσματα και μορφές ημερομηνίας.
Σε αυτό το σεμινάριο, θα εξερευνήσουμε πώς να προσθέσουμε διεθνοποίηση στην εφαρμογή React Next.js σας, με απόδοση στην πλευρά του διακομιστή. TL;DR: Δείτε το πλήρες παράδειγμα εδώ.
Αυτός ο οδηγός απευθύνεται σε εφαρμογές Next.js που χρησιμοποιούν τον Pages Router.
Εάν χρησιμοποιείτε τον App Router, δείτε αντ' αυτού αυτόν τον οδηγό.
Βήμα 1: Εγκαταστήστε μια βιβλιοθήκη i18n
Για να εφαρμόσουμε την διεθνοποίηση στην εφαρμογή Next.js σας, πρώτα θα επιλέξουμε μια βιβλιοθήκη i18n. Υπάρχουν αρκετές δημοφιλείς βιβλιοθήκες, όπως next-intl. Ωστόσο, σε αυτό το παράδειγμα, θα χρησιμοποιήσουμε TacoTranslate.
Το TacoTranslate μεταφράζει αυτόματα τις συμβολοσειρές σας σε οποιαδήποτε γλώσσα χρησιμοποιώντας πρωτοποριακή τεχνητή νοημοσύνη και σας απαλλάσσει από τη χρονοβόρα διαχείριση αρχείων JSON.
Ας το εγκαταστήσουμε χρησιμοποιώντας npm στο τερματικό σας:
npm install tacotranslate
Βήμα 2: Δημιουργήστε έναν δωρεάν λογαριασμό στο TacoTranslate
Τώρα που έχετε εγκαταστήσει το module, είναι ώρα να δημιουργήσετε τον λογαριασμό σας στο TacoTranslate, ένα έργο μετάφρασης και τα αντίστοιχα κλειδιά API. Δημιουργήστε έναν λογαριασμό εδώ. Είναι δωρεάν και δεν απαιτεί να προσθέσετε πιστωτική κάρτα.
Στο UI της εφαρμογής TacoTranslate, δημιουργήστε ένα έργο και μεταβείτε στην καρτέλα με τα κλειδιά API. Δημιουργήστε ένα read
κλειδί, και ένα read/write
κλειδί. Θα τα αποθηκεύσουμε ως μεταβλητές περιβάλλοντος. Το read
κλειδί είναι αυτό που ονομάζουμε public
και το read/write
κλειδί είναι secret
. Για παράδειγμα, μπορείτε να τα προσθέσετε σε ένα .env
αρχείο στη ρίζα του έργου σας.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010
Βεβαιωθείτε να μην διαρρεύσετε ποτέ το μυστικό read/write
κλειδί API σε περιβάλλοντα παραγωγής στην πλευρά του πελάτη.
Θα προσθέσουμε επίσης δύο ακόμη μεταβλητές περιβάλλοντος: TACOTRANSLATE_DEFAULT_LOCALE
και TACOTRANSLATE_ORIGIN
.
TACOTRANSLATE_DEFAULT_LOCALE
: Ο προεπιλεγμένος κωδικός τοπικής ρύθμισης για fallback. Σε αυτό το παράδειγμα, θα τον ορίσουμε σεen
για τα Αγγλικά.TACOTRANSLATE_ORIGIN
: Ο «φάκελος» όπου θα αποθηκευτούν οι συμβολοσειρές σας, όπως το URL του ιστότοπού σας. Μάθετε περισσότερα για τις προελεύσεις εδώ.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com
Βήμα 3: Ρύθμιση του TacoTranslate
Για να ενσωματώσετε το TacoTranslate στην εφαρμογή σας, θα χρειαστεί να δημιουργήσετε έναν client χρησιμοποιώντας τα κλειδιά API που δημιουργήσατε νωρίτερα. Για παράδειγμα, δημιουργήστε ένα αρχείο με όνομα /tacotranslate-client.js
.
const {default: createTacoTranslateClient} = require('tacotranslate');
const tacoTranslate = createTacoTranslateClient({
apiKey:
process.env.TACOTRANSLATE_SECRET_API_KEY ??
process.env.TACOTRANSLATE_PUBLIC_API_KEY ??
process.env.TACOTRANSLATE_API_KEY ??
'',
projectLocale: process.env.TACOTRANSLATE_DEFAULT_LOCALE ?? '',
});
module.exports = tacoTranslate;
Θα ορίσουμε αυτόματα το TACOTRANSLATE_API_KEY
σε λίγο.
Η δημιουργία του client σε ξεχωριστό αρχείο καθιστά ευκολότερη την επαναχρησιμοποίηση αργότερα. Τώρα, χρησιμοποιώντας ένα προσαρμοσμένο /pages/_app.tsx
, θα προσθέσουμε τον πάροχο TacoTranslate
.
import React from 'react';
import {type AppProps} from 'next/app';
import {type Origin, type Locale, type Localizations} from 'tacotranslate';
import TacoTranslate from 'tacotranslate/react';
import TacoTranslateHead from 'tacotranslate/next/head';
import tacoTranslate from '../tacotranslate-client';
type PageProperties = {
origin: Origin;
locale: Locale;
locales: Locale[];
localizations: Localizations;
};
export default function App({Component, pageProps}: AppProps<PageProperties>) {
const {origin, locale, locales, localizations} = pageProps;
return (
<TacoTranslate
client={tacoTranslate}
origin={origin}
locale={locale}
localizations={localizations}
>
<TacoTranslateHead rootUrl="https://your-website.com" locales={locales} />
<Component {...pageProps} />
</TacoTranslate>
);
}
Αν έχετε ήδη προσαρμοσμένα pageProps
και _app.tsx
, παρακαλούμε επεκτείνετε τον ορισμό με τις παραπάνω ιδιότητες και τον κώδικα.
Βήμα 4: Υλοποίηση απόδοσης στην πλευρά του διακομιστή
TacoTranslate επιτρέπει την απόδοση από την πλευρά του διακομιστή των μεταφράσεών σας. Αυτό βελτιώνει σημαντικά την εμπειρία του χρήστη, εμφανίζοντας το μεταφρασμένο περιεχόμενο αμέσως, αντί για μια σύντομη εμφάνιση μη μεταφρασμένου περιεχομένου. Επιπλέον, μπορούμε να παραλείψουμε αιτήματα δικτύου από την πλευρά του πελάτη, επειδή ήδη διαθέτουμε όλες τις μεταφράσεις που χρειαζόμαστε.
Θα ξεκινήσουμε δημιουργώντας ή τροποποιώντας /next.config.js
.
const withTacoTranslate = require('tacotranslate/next/config').default;
const tacoTranslateClient = require('./tacotranslate-client');
module.exports = async () => {
const config = {};
return withTacoTranslate(config, {
client: tacoTranslateClient,
isProduction:
process.env.TACOTRANSLATE_ENV === 'production' ||
process.env.VERCEL_ENV === 'production' ||
(!(process.env.TACOTRANSLATE_ENV || process.env.VERCEL_ENV) &&
process.env.NODE_ENV === 'production'),
});
};
Προσαρμόστε τον έλεγχο isProduction
ώστε να ταιριάζει στη ρύθμισή σας. Εάν true
, το TacoTranslate θα εμφανίσει το δημόσιο κλειδί API. Εάν βρισκόμαστε σε τοπικό, δοκιμαστικό ή staging περιβάλλον (isProduction
is false
), θα χρησιμοποιήσουμε το μυστικό κλειδί API read/write
για να διασφαλίσουμε ότι οι νέες συμβολοσειρές θα αποστέλλονται για μετάφραση.
Μέχρι τώρα, έχουμε ρυθμίσει την εφαρμογή Next.js μόνο με μια λίστα υποστηριζόμενων γλωσσών. Το επόμενο βήμα είναι να ανακτήσουμε τις μεταφράσεις για όλες τις σελίδες σας. Για να το κάνετε αυτό, θα χρησιμοποιήσετε είτε getTacoTranslateStaticProps
είτε getTacoTranslateServerSideProps
ανάλογα με τις ανάγκες σας.
Αυτές οι συναρτήσεις δέχονται τρία ορίσματα: ένα αντικείμενο Next.js Static Props Context, τη διαμόρφωση για το TacoTranslate και προαιρετικές ιδιότητες του Next.js. Σημειώστε ότι το revalidate
στο getTacoTranslateStaticProps
έχει οριστεί σε 60 από προεπιλογή, ώστε οι μεταφράσεις σας να παραμένουν ενημερωμένες.
Για να χρησιμοποιήσετε οποιαδήποτε από τις δύο συναρτήσεις σε μια σελίδα, ας υποθέσουμε ότι έχετε ένα αρχείο σελίδας όπως /pages/hello-world.tsx
.
import {Translate} from 'tacotranslate/react';
import getTacoTranslateStaticProps from 'tacotranslate/next/get-static-props';
import tacoTranslateClient from '../tacotranslate-client';
export async function getStaticProps(context) {
return getTacoTranslateStaticProps(context, {client: tacoTranslateClient});
}
export default function Page() {
return <Translate string="Hello, world!"/>;
}
Τώρα θα πρέπει να μπορείτε να χρησιμοποιήσετε το Translate
συστατικό για να μεταφράσετε τις συμβολοσειρές σε όλα τα React συστατικά σας.
import {Translate} from 'tacotranslate/react';
function Component() {
return <Translate string="Hello, world!"/>
}
Βήμα 5: Αναπτύξτε και δοκιμάστε!
Τελειώσαμε! Η εφαρμογή Next.js σας θα μεταφράζεται αυτόματα πλέον όταν προσθέσετε οποιεσδήποτε συμβολοσειρές σε ένα συστατικό Translate
. Σημειώστε ότι μόνο τα περιβάλλοντα με δικαιώματα read/write
στο API key θα μπορούν να δημιουργούν νέες συμβολοσειρές προς μετάφραση. Συνιστούμε να έχετε ένα κλειστό και ασφαλές περιβάλλον staging όπου μπορείτε να δοκιμάσετε την παραγωγική σας εφαρμογή με ένα τέτοιο κλειδί API, προσθέτοντας νέες συμβολοσειρές πριν την κυκλοφορία. Αυτό θα αποτρέψει οποιονδήποτε οποιονδήποτε από το να κλέψει το μυστικό σας κλειδί API και, ενδεχομένως, να φουσκώσει το έργο μεταφράσεων σας προσθέτοντας νέες, άσχετες συμβολοσειρές.
Be sure to check out the complete example over at our GitHub profile. There, you’ll also find an example of how to do this using the App Router! If you encounter any problems, feel free to reach out, and we’ll be more than happy to help.
TacoTranslate lets you automatically localize your React applications quickly to and from over 75 languages. Get started today!