diff --git a/i18n/i18n.ts b/i18n/i18n.ts index 25570de..3bf4b34 100644 --- a/i18n/i18n.ts +++ b/i18n/i18n.ts @@ -1,6 +1,12 @@ import type { LocaleObject } from '@nuxtjs/i18n' const locales: LocaleObject[] = [ + { + code: 'en-US', + file: 'en-US.json', + name: 'English', + emoji: '🇺🇸', + }, { code: 'zh-CN', file: 'zh-CN.json', @@ -13,12 +19,17 @@ const locales: LocaleObject[] = [ name: '繁體中文', emoji: '🇹🇼', }, - { - code: 'en-US', - file: 'en-US.json', - name: 'English', - emoji: '🇺🇸', + code: 'fr-FR', + file: 'fr-FR.json', + name: 'Français', + emoji: '🇫🇷', + }, + { + code: 'vi-VN', + file: 'vi-VN.json', + name: 'Tiếng Việt', + emoji: '🇻🇳', }, ] diff --git a/i18n/locales/fr-FR.json b/i18n/locales/fr-FR.json new file mode 100644 index 0000000..7a3441b --- /dev/null +++ b/i18n/locales/fr-FR.json @@ -0,0 +1,169 @@ +{ + "common": { + "i18n": "Multi Langue", + "abbreviations": "Fr", + "current_language": "Français", + "try_again": "Réessayer", + "cancel": "Annuler", + "continue": "Continuer", + "close": "Fermer", + "save": "Enregistrer", + "edit": "Modifier", + "delete": "Supprimer", + "delete_success": "Suppression réussie !", + "search": "Rechercher" + }, + "theme": { + "toggle": "Changer de thème", + "light": "Clair", + "dark": "Sombre", + "system": "Système" + }, + "login": { + "title": "Connexion", + "description": "Entrez votre jeton pour vous connecter", + "tips": "Astuces", + "preview_token": "Le jeton du site pour le mode aperçu est", + "submit": "Connexion", + "failed": "Échec de la connexion, veuillez réessayer" + }, + "logout": { + "title": "Déconnexion ?", + "confirm": "Êtes-vous sûr de vouloir vous déconnecter ?", + "action": "Déconnexion" + }, + "layouts": { + "footer": { + "copyright": "Produits de HTML.ZONE", + "social": { + "email": "Email", + "telegram": "Telegram", + "blog": "Blog", + "twitter": "Twitter", + "mastodon": "Mastodon", + "github": "GitHub" + } + }, + "header": { + "select_language": "Choisir la langue" + } + }, + "nav": { + "links": "Liens", + "analysis": "Statistique" + }, + "home": { + "features": { + "title": "Fonctionnalités", + "subtitle": "Fonctionnalité simple et adéquate", + "url_shortening": { + "title": "Raccourcissement d'URL", + "description": "Raccourcissez la taille de vos liens" + }, + "analytics": { + "title": "Statistique", + "description": "Suivre l'analyse des liens et recueillir des statistiques pertinentes" + }, + "serverless": { + "title": "Serverless", + "description": "Déployez sans avoir besoin de serveurs traditionnels" + }, + "customizable_slug": { + "title": "Slug personnalisable", + "description": "Prise en charge des slugs personnalisés et de la sensibilité à la casse" + }, + "ai_slug": { + "title": "Slug IA", + "description": "Utilisez l'IA pour créer des slugs" + }, + "link_expiration": { + "title": "Expiration des liens", + "description": "Définissez des dates d'expiration pour vos liens" + } + }, + "cta": { + "title": "Déploiement immédiat", + "description": "En quelques clics, vous pouvez commencer à déployer sans aucun frais", + "button": "Lancer le déploiement" + }, + "logos": { + "title": "Construit avec de superbes technologies" + }, + "twitter": { + "follow": "Suivez-moi sur X(Twitter)" + } + }, + "dashboard": { + "title": "Tableau de bord", + "visits": "Visites", + "views": "Vues", + "visitors": "Visiteurs", + "referers": "Referrers", + "stats": "Statistiques", + "custom_date": "Date personnalisée", + "date": "Date", + "date_range": "Intervalle de temps", + "locations": "Localisations", + "details": "Détails", + "name": "Nom", + "count": "Nombre", + "loading": "Chargement", + "no_data": "Aucune donnée", + "none": "(Aucun)", + "filter_placeholder": "Filtrer les liens...", + "date_picker": { + "today": "Aujourd'hui", + "last_24h": "Dernières 24 heures", + "this_week": "Cette semaine", + "last_7d": "7 derniers jours", + "this_month": "Ce mois-ci", + "last_30d": "30 derniers jours", + "last_90d": "90 derniers jours", + "custom": "Personnalisé", + "custom_title": "Date personnalisée", + "single_date": "Date", + "date_range": "Plage de dates" + }, + "metrics": { + "country": "Pays", + "region": "Région", + "city": "Ville", + "referer": "Referrer", + "slug": "Slug", + "language": "Langue", + "timezone": "Fuseau horaire", + "device": "Appareil", + "deviceType": "Type d'appareil", + "os": "OS", + "browser": "Navigateur", + "browserType": "Type de navigateur" + } + }, + "links": { + "create": "Créer un lien", + "edit": "Modifier le lien", + "delete_confirm_title": "Êtes-vous absolument sûr ?", + "delete_confirm_desc": "Cette action est irréversible. Cela supprimera votre lien des serveurs.", + "delete_success": "Suppression réussie !", + "update_success": "Lien mis à jour avec succès", + "create_success": "Lien créé avec succès", + "preview_mode_tip": "Le lien en mode aperçu est valide jusqu'à 5 minutes.", + "search_placeholder": "Rechercher des liens...", + "no_results": "Aucun lien trouvé.", + "group_title": "Liens", + "copy_success": "Copie réussie !", + "created_at": "Créé le", + "updated_at": "Mis à jour le", + "expires_at": "Expire le", + "no_more": "Plus de liens", + "load_failed": "Échec du chargement des liens,", + "download_qr_code": "Télécharger le code QR", + "sort": { + "newest": "Les plus récents", + "oldest": "Les plus anciens", + "az": "Slug A-Z", + "za": "Slug Z-A", + "tip": "Essai : uniquement pour les liens chargés" + } + } +} diff --git a/i18n/locales/vi-VN.json b/i18n/locales/vi-VN.json new file mode 100644 index 0000000..5eb08e9 --- /dev/null +++ b/i18n/locales/vi-VN.json @@ -0,0 +1,169 @@ +{ + "common": { + "i18n": "Đa ngôn ngữ", + "abbreviations": "Vi", + "current_language": "Tiếng Việt", + "try_again": "Thử lại", + "cancel": "Hủy", + "continue": "Tiếp tục", + "close": "Đóng", + "save": "Lưu", + "edit": "Chỉnh sửa", + "delete": "Xóa", + "delete_success": "Xóa thành công!", + "search": "Tìm kiếm" + }, + "theme": { + "toggle": "Chuyển đổi giao diện", + "light": "Sáng", + "dark": "Tối", + "system": "Hệ thống" + }, + "login": { + "title": "Đăng nhập", + "description": "Nhập token của trang để đăng nhập", + "tips": "Mẹo", + "preview_token": "Token của chế độ xem trước là", + "submit": "Đăng nhập", + "failed": "Đăng nhập thất bại, vui lòng thử lại" + }, + "logout": { + "title": "Đăng xuất?", + "confirm": "Bạn có chắc chắn muốn đăng xuất không?", + "action": "Đăng xuất" + }, + "layouts": { + "footer": { + "copyright": "Sản phẩm của HTML.ZONE", + "social": { + "email": "Email", + "telegram": "Telegram", + "blog": "Blog", + "twitter": "Twitter", + "mastodon": "Mastodon", + "github": "GitHub" + } + }, + "header": { + "select_language": "Chọn ngôn ngữ" + } + }, + "nav": { + "links": "Liên kết", + "analysis": "Phân tích" + }, + "home": { + "features": { + "title": "Tính năng", + "subtitle": "Đơn giản và đủ dùng", + "url_shortening": { + "title": "Rút gọn URL", + "description": "Rút gọn liên kết đến độ dài tối thiểu" + }, + "analytics": { + "title": "Phân tích", + "description": "Theo dõi dữ liệu và thu thập thống kê hữu ích" + }, + "serverless": { + "title": "Không máy chủ", + "description": "Triển khai mà không cần máy chủ truyền thống" + }, + "customizable_slug": { + "title": "Slug tùy chỉnh", + "description": "Hỗ trợ slug cá nhân hóa và phân biệt chữ hoa/thường" + }, + "ai_slug": { + "title": "Slug AI", + "description": "Tạo slug bằng trí tuệ nhân tạo" + }, + "link_expiration": { + "title": "Hết hạn liên kết", + "description": "Đặt ngày hết hạn cho liên kết" + } + }, + "cta": { + "title": "Triển khai ngay", + "description": "Chỉ với vài cú nhấp chuột, bạn có thể triển khai miễn phí", + "button": "Bắt đầu triển khai" + }, + "logos": { + "title": "Xây dựng bằng những công nghệ tuyệt vời" + }, + "twitter": { + "follow": "Theo dõi tôi trên X (Twitter)" + } + }, + "dashboard": { + "title": "Bảng điều khiển", + "visits": "Lượt truy cập", + "views": "Lượt xem", + "visitors": "Khách truy cập", + "referers": "Nguồn giới thiệu", + "stats": "Thống kê của", + "custom_date": "Ngày tùy chỉnh", + "date": "Ngày", + "date_range": "Khoảng ngày", + "locations": "Vị trí", + "details": "Chi tiết", + "name": "Tên", + "count": "Số lượng", + "loading": "Đang tải", + "no_data": "Không có dữ liệu", + "none": "(Không có)", + "filter_placeholder": "Lọc liên kết...", + "date_picker": { + "today": "Hôm nay", + "last_24h": "24 giờ qua", + "this_week": "Tuần này", + "last_7d": "7 ngày qua", + "this_month": "Tháng này", + "last_30d": "30 ngày qua", + "last_90d": "90 ngày qua", + "custom": "Tùy chỉnh", + "custom_title": "Chọn ngày", + "single_date": "Ngày", + "date_range": "Khoảng ngày" + }, + "metrics": { + "country": "Quốc gia", + "region": "Vùng", + "city": "Thành phố", + "referer": "Nguồn giới thiệu", + "slug": "Slug", + "language": "Ngôn ngữ", + "timezone": "Múi giờ", + "device": "Thiết bị", + "deviceType": "Loại thiết bị", + "os": "Hệ điều hành", + "browser": "Trình duyệt", + "browserType": "Loại trình duyệt" + } + }, + "links": { + "create": "Tạo liên kết", + "edit": "Chỉnh sửa liên kết", + "delete_confirm_title": "Bạn có chắc chắn không?", + "delete_confirm_desc": "Hành động này không thể hoàn tác. Điều này sẽ xóa hoàn toàn liên kết khỏi máy chủ.", + "delete_success": "Xóa thành công!", + "update_success": "Cập nhật liên kết thành công", + "create_success": "Tạo liên kết thành công", + "preview_mode_tip": "Liên kết ở chế độ xem trước có hiệu lực trong 5 phút.", + "search_placeholder": "Tìm liên kết...", + "no_results": "Không tìm thấy liên kết nào.", + "group_title": "Liên kết", + "copy_success": "Sao chép thành công!", + "created_at": "Ngày tạo", + "updated_at": "Ngày cập nhật", + "expires_at": "Ngày hết hạn", + "no_more": "Không còn liên kết nào", + "load_failed": "Tải liên kết thất bại,", + "download_qr_code": "Tải mã QR", + "sort": { + "newest": "Mới nhất trước", + "oldest": "Cũ nhất trước", + "az": "Slug A-Z", + "za": "Slug Z-A", + "tip": "Trải nghiệm: Chỉ áp dụng với các liên kết đã tải" + } + } +}