Η καλύτερη λύση για διεθνοποίηση (i18n) σε εφαρμογές Next.js
Θέλετε να επεκτείνετε την εφαρμογή Next.js σας σε νέες αγορές; Το TacoTranslate καθιστά εξαιρετικά εύκολο να τοπικοποιήσετε το έργο σας Next.js, επιτρέποντάς σας να απευθυνθείτε σε ένα παγκόσμιο κοινό χωρίς ταλαιπωρία.
Γιατί να επιλέξετε το TacoTranslate για το Next.js;
- Απρόσκοπτη ενσωμάτωση: Σχεδιασμένο ειδικά για εφαρμογές Next.js, το TacoTranslate ενσωματώνεται εύκολα στην υπάρχουσα ροή εργασίας σας.
- Αυτόματη συλλογή συμβολοσειρών: Τέλος στη χειροκίνητη διαχείριση αρχείων JSON. Το TacoTranslate συλλέγει αυτόματα τις συμβολοσειρές από τον κώδικά σας.
- Μεταφράσεις με τεχνητή νοημοσύνη: Αξιοποιήστε τη δύναμη της τεχνητής νοημοσύνης για να παρέχετε μεταφράσεις ακριβείς στο πλαίσιο και κατάλληλες στον τόνο της εφαρμογής σας.
- Άμεση υποστήριξη γλωσσών: Προσθέστε υποστήριξη για νέες γλώσσες με ένα μόνο κλικ, καθιστώντας την εφαρμογή σας προσβάσιμη παγκοσμίως.
Πώς λειτουργεί
Καθώς ο κόσμος γίνεται όλο και πιο παγκοσμιοποιημένος, γίνεται ολοένα και πιο σημαντικό για τους προγραμματιστές web να δημιουργούν εφαρμογές που να καλύπτουν χρήστες από διαφορετικές χώρες και κουλτούρες. Ένας από τους βασικούς τρόπους για να το πετύχετε αυτό είναι η διεθνοποίηση (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. Δημιουργήστε έναν λογαριασμό εδώ. Είναι δωρεάν και δεν απαιτεί την προσθήκη πιστωτικής κάρτας.
Στο περιβάλλον διεπαφής της εφαρμογής 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: Ο προεπιλεγμένος κωδικός τοπικής ρύθμισης που χρησιμοποιείται ως εφεδρικός. Στο παράδειγμα αυτό θα τον ορίσουμε σε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 επιτρέπει το server-side rendering των μεταφράσεών σας. Αυτό βελτιώνει σημαντικά την εμπειρία χρήστη, εμφανίζοντας το μεταφρασμένο περιεχόμενο αμέσως, αντί για μια αρχική εμφάνιση μη μεταφρασμένου περιεχομένου. Επιπλέον, μπορούμε να παραλείψουμε τα αιτήματα δικτύου στην πλευρά του πελάτη, επειδή ήδη διαθέτουμε όλες τις μεταφράσεις που χρειαζόμαστε.
Θα ξεκινήσουμε δημιουργώντας ή τροποποιώντας το /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 θα μπορούν να δημιουργούν νέες συμβολοσειρές προς μετάφραση. Σας συνιστούμε να έχετε ένα κλειστό και ασφαλές περιβάλλον 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!