From fd4885601980ae1b09b84bebad69f443c59ac99f Mon Sep 17 00:00:00 2001 From: web Date: Thu, 4 Sep 2025 01:26:50 -0700 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20Add=20language=20support=20?= =?UTF-8?q?and=20descriptions=20in=20product=20localization=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added language, languageDescription, and languagePlaceholder fields to product.json for multiple locales (ja-JP, ko-KR, no-NO, pl-PL, pt-BR, ro-RO, ru-RU, th-TH, tr-TR, uk-UA, vi-VN, zh-HK). - Removed group-related fields from product.json for cleaner structure. - Updated API calls in user services to include language parameter for subscription retrieval. - Enhanced type definitions for subscription requests to accommodate language parameter. --- apps/admin/locales/cs-CZ/product.json | 36 +++---------------- apps/admin/locales/de-DE/product.json | 36 +++---------------- apps/admin/locales/es-ES/product.json | 36 +++---------------- apps/admin/locales/es-MX/product.json | 36 +++---------------- apps/admin/locales/fa-IR/product.json | 36 +++---------------- apps/admin/locales/fi-FI/product.json | 36 +++---------------- apps/admin/locales/fr-FR/product.json | 36 +++---------------- apps/admin/locales/hi-IN/product.json | 36 +++---------------- apps/admin/locales/hu-HU/product.json | 36 +++---------------- apps/admin/locales/ja-JP/product.json | 36 +++---------------- apps/admin/locales/ko-KR/product.json | 36 +++---------------- apps/admin/locales/no-NO/product.json | 36 +++---------------- apps/admin/locales/pl-PL/product.json | 36 +++---------------- apps/admin/locales/pt-BR/product.json | 36 +++---------------- apps/admin/locales/ro-RO/product.json | 36 +++---------------- apps/admin/locales/ru-RU/product.json | 36 +++---------------- apps/admin/locales/th-TH/product.json | 36 +++---------------- apps/admin/locales/tr-TR/product.json | 36 +++---------------- apps/admin/locales/uk-UA/product.json | 36 +++---------------- apps/admin/locales/vi-VN/product.json | 36 +++---------------- apps/admin/locales/zh-HK/product.json | 36 +++---------------- apps/user/app/(main)/purchasing/page.tsx | 13 +++++-- .../main/product-showcase/index.tsx | 13 +++++-- apps/user/services/user/portal.ts | 9 ++++- apps/user/services/user/typings.d.ts | 8 +++++ 25 files changed, 120 insertions(+), 679 deletions(-) diff --git a/apps/admin/locales/cs-CZ/product.json b/apps/admin/locales/cs-CZ/product.json index b2c936a..4541f44 100644 --- a/apps/admin/locales/cs-CZ/product.json +++ b/apps/admin/locales/cs-CZ/product.json @@ -35,8 +35,10 @@ "discountPercent": "Procento slevy", "discount_price": "Cena po slevě", "duration": "Doba trvání (měsíce)", - "groupId": "Skupina předplatného", "inventory": "Limit předplatného", + "language": "Jazyk", + "languageDescription": "Nechte prázdné pro výchozí bez jazykového omezení", + "languagePlaceholder": "Identifikátor jazyka pro předplatné, např. en-US, zh-CN", "monthlyReset": "Měsíční Reset", "name": "Název", "noLimit": "Bez omezení", @@ -54,39 +56,14 @@ "resetCycle": "Resetovací Cyklus", "resetOn1st": "Reset 1. dne", "selectResetCycle": "Vyberte prosím resetovací cyklus", - "selectSubscribeGroup": "Vyberte prosím skupinu předplatného", "selectUnitTime": "Vyberte jednotku času", "speedLimit": "Omezení rychlosti ", "traffic": "Přenos dat", "unitPrice": "Jednotková cena", "unitTime": "Jednotka času" }, - "group": { - "actions": "Akce", - "cancel": "Zrušit", - "confirm": "Potvrdit", - "confirmDelete": "Opravdu chcete smazat?", - "create": "Vytvořit", - "createSubscribeGroup": "Vytvořit novou skupinu odběrů", - "createSuccess": "Úspěšně vytvořeno", - "delete": "Smazat", - "deleteSuccess": "Úspěšně smazáno", - "deleteWarning": "Po smazání nelze data obnovit, prosím postupujte opatrně.", - "description": "Popis", - "edit": "Upravit", - "editSubscribeGroup": "Upravit skupinu odběrů", - "form": { - "cancel": "Zrušit", - "confirm": "Potvrdit", - "description": "Popis", - "name": "Název" - }, - "name": "Název", - "title": "Seznam skupin odběrů", - "updateSuccess": "Úspěšně aktualizováno", - "updatedAt": "Čas aktualizace" - }, "inventory": "Limit předplatného", + "language": "Jazyk", "name": "název", "quota": "Limit na nákup/čas", "replacement": "Obnovení ceny/krát", @@ -94,11 +71,6 @@ "show": "Zobrazit", "sold": "Počet předplatných", "subscribe": "Předplatit", - "subscribeGroup": "Přihlásit se ke skupině", - "tabs": { - "subscribe": "Předplatit", - "subscribeGroup": "Skupina předplatných" - }, "traffic": "provoz", "unitPrice": "Jednotková cena", "updateSuccess": "Aktualizace byla úspěšná" diff --git a/apps/admin/locales/de-DE/product.json b/apps/admin/locales/de-DE/product.json index 6193e9e..3537c77 100644 --- a/apps/admin/locales/de-DE/product.json +++ b/apps/admin/locales/de-DE/product.json @@ -35,8 +35,10 @@ "discountPercent": "Rabattprozentsatz", "discount_price": "Rabattpreis", "duration": "Dauer (Monate)", - "groupId": "Abonnementgruppe", "inventory": "Abonnementslimit", + "language": "Sprache", + "languageDescription": "Feld leer lassen für Standard ohne Sprachbeschränkung", + "languagePlaceholder": "Sprachbezeichner für das Abonnement, z.B. de-DE, zh-CN", "monthlyReset": "Monatliches Zurücksetzen", "name": "Name", "noLimit": "Keine Begrenzung", @@ -54,39 +56,14 @@ "resetCycle": "Zurücksetzungszyklus", "resetOn1st": "Zurücksetzen am 1.", "selectResetCycle": "Bitte wählen Sie einen Zurücksetzungszyklus", - "selectSubscribeGroup": "Bitte Abonnementgruppe auswählen", "selectUnitTime": "Bitte wählen Sie eine Zeiteinheit", "speedLimit": "Geschwindigkeitsbegrenzung ", "traffic": "Datenvolumen", "unitPrice": "Einheitspreis", "unitTime": "Zeiteinheit" }, - "group": { - "actions": "Aktionen", - "cancel": "Abbrechen", - "confirm": "Bestätigen", - "confirmDelete": "Löschen bestätigen?", - "create": "Erstellen", - "createSubscribeGroup": "Neue Abonnementgruppe erstellen", - "createSuccess": "Erstellung erfolgreich", - "delete": "Löschen", - "deleteSuccess": "Erfolgreich gelöscht", - "deleteWarning": "Nach dem Löschen können die Daten nicht wiederhergestellt werden, bitte vorsichtig vorgehen.", - "description": "Beschreibung", - "edit": "Bearbeiten", - "editSubscribeGroup": "Abonnementgruppe bearbeiten", - "form": { - "cancel": "Abbrechen", - "confirm": "Bestätigen", - "description": "Beschreibung", - "name": "Name" - }, - "name": "Name", - "title": "Liste der Abonnementgruppen", - "updateSuccess": "Erfolgreich aktualisiert", - "updatedAt": "Aktualisierungszeit" - }, "inventory": "Abonnementslimit", + "language": "Sprache", "name": "Name", "quota": "Kaufbeschränkung/pro Einkauf", "replacement": "Preis pro Zurücksetzung", @@ -94,11 +71,6 @@ "show": "Anzeigen", "sold": "Abonnentenzahl", "subscribe": "Abonnieren", - "subscribeGroup": "Gruppe abonnieren", - "tabs": { - "subscribe": "Abonnieren", - "subscribeGroup": "Abonnieren Gruppe" - }, "traffic": "Verkehr", "unitPrice": "Stückpreis", "updateSuccess": "Aktualisierung erfolgreich" diff --git a/apps/admin/locales/es-ES/product.json b/apps/admin/locales/es-ES/product.json index 5f1b479..601c594 100644 --- a/apps/admin/locales/es-ES/product.json +++ b/apps/admin/locales/es-ES/product.json @@ -35,8 +35,10 @@ "discountPercent": "Porcentaje de descuento", "discount_price": "Precio con descuento", "duration": "Duración (meses)", - "groupId": "Grupo de Suscripción", "inventory": "Límite de suscripción", + "language": "Idioma", + "languageDescription": "Dejar vacío para el predeterminado sin restricción de idioma", + "languagePlaceholder": "Identificador de idioma para la suscripción, por ejemplo, es-ES, zh-CN", "monthlyReset": "Reinicio Mensual", "name": "Nombre", "noLimit": "Sin límite", @@ -54,39 +56,14 @@ "resetCycle": "Ciclo de Reinicio", "resetOn1st": "Reiniciar el día 1", "selectResetCycle": "Por favor, seleccione un ciclo de reinicio", - "selectSubscribeGroup": "Por favor, seleccione un grupo de suscripción", "selectUnitTime": "Por favor, seleccione la unidad de tiempo", "speedLimit": "Límite de velocidad ", "traffic": "Tráfico", "unitPrice": "Precio unitario", "unitTime": "Unidad de tiempo" }, - "group": { - "actions": "Acciones", - "cancel": "Cancelar", - "confirm": "Confirmar", - "confirmDelete": "¿Confirmar eliminación?", - "create": "Crear", - "createSubscribeGroup": "Crear nuevo grupo de suscripción", - "createSuccess": "Creación exitosa", - "delete": "Eliminar", - "deleteSuccess": "Eliminación exitosa", - "deleteWarning": "Los datos no se pueden recuperar después de la eliminación, por favor opere con precaución.", - "description": "Descripción", - "edit": "Editar", - "editSubscribeGroup": "Editar grupo de suscripción", - "form": { - "cancel": "Cancelar", - "confirm": "Confirmar", - "description": "Descripción", - "name": "Nombre" - }, - "name": "Nombre", - "title": "Lista de grupos de suscripción", - "updateSuccess": "Actualización exitosa", - "updatedAt": "Fecha de actualización" - }, "inventory": "Límite de suscripción", + "language": "Idioma", "name": "Nombre", "quota": "Límite de compra/vez", "replacement": "Restablecer precio/vez", @@ -94,11 +71,6 @@ "show": "Mostrar", "sold": "Conteo de Suscripciones", "subscribe": "Suscribirse", - "subscribeGroup": "Suscribirse al grupo", - "tabs": { - "subscribe": "Suscribirse", - "subscribeGroup": "Grupo de suscripción" - }, "traffic": "tráfico", "unitPrice": "Precio Unitario", "updateSuccess": "Actualización exitosa" diff --git a/apps/admin/locales/es-MX/product.json b/apps/admin/locales/es-MX/product.json index 7014704..7c7741f 100644 --- a/apps/admin/locales/es-MX/product.json +++ b/apps/admin/locales/es-MX/product.json @@ -35,8 +35,10 @@ "discountPercent": "Porcentaje de descuento", "discount_price": "Precio con descuento", "duration": "Duración (meses)", - "groupId": "Grupo de Suscripción", "inventory": "Límite de Suscripción", + "language": "Idioma", + "languageDescription": "Dejar vacío para el predeterminado sin restricción de idioma", + "languagePlaceholder": "Identificador de idioma para la suscripción, por ejemplo, es-MX, zh-CN", "monthlyReset": "Reinicio Mensual", "name": "Nombre", "noLimit": "Sin límite", @@ -54,39 +56,14 @@ "resetCycle": "Ciclo de Reinicio", "resetOn1st": "Reiniciar el día 1", "selectResetCycle": "Por favor, seleccione un ciclo de reinicio", - "selectSubscribeGroup": "Por favor seleccione un grupo de suscripción", "selectUnitTime": "Por favor seleccione la unidad de tiempo", "speedLimit": "Límite de velocidad ", "traffic": "Tráfico", "unitPrice": "Precio unitario", "unitTime": "Unidad de tiempo" }, - "group": { - "actions": "Acciones", - "cancel": "Cancelar", - "confirm": "Confirmar", - "confirmDelete": "¿Confirmar eliminación?", - "create": "Crear", - "createSubscribeGroup": "Crear nuevo grupo de suscripción", - "createSuccess": "Creación exitosa", - "delete": "Eliminar", - "deleteSuccess": "Eliminación exitosa", - "deleteWarning": "Los datos no se pueden recuperar después de la eliminación, por favor opere con precaución.", - "description": "Descripción", - "edit": "Editar", - "editSubscribeGroup": "Editar grupo de suscripción", - "form": { - "cancel": "Cancelar", - "confirm": "Confirmar", - "description": "Descripción", - "name": "Nombre" - }, - "name": "Nombre", - "title": "Lista de grupos de suscripción", - "updateSuccess": "Actualización exitosa", - "updatedAt": "Fecha de actualización" - }, "inventory": "Límite de Suscripción", + "language": "Idioma", "name": "Nombre", "quota": "Límite de compra/vez", "replacement": "Restablecer precio/vez", @@ -94,11 +71,6 @@ "show": "Mostrar", "sold": "Conteo de Suscripciones", "subscribe": "Suscribirse", - "subscribeGroup": "Suscribirse al grupo", - "tabs": { - "subscribe": "Suscribirse", - "subscribeGroup": "Grupo de suscripción" - }, "traffic": "tráfico", "unitPrice": "Precio Unitario", "updateSuccess": "Actualización exitosa" diff --git a/apps/admin/locales/fa-IR/product.json b/apps/admin/locales/fa-IR/product.json index 6aeb93b..1bf2d51 100644 --- a/apps/admin/locales/fa-IR/product.json +++ b/apps/admin/locales/fa-IR/product.json @@ -35,8 +35,10 @@ "discountPercent": "درصد تخفیف", "discount_price": "قیمت تخفیف", "duration": "مدت زمان (ماه‌ها)", - "groupId": "گروه اشتراک", "inventory": "محدودیت اشتراک", + "language": "زبان", + "languageDescription": "برای پیش‌فرض بدون محدودیت زبانی خالی بگذارید", + "languagePlaceholder": "شناسایی زبان برای اشتراک، به عنوان مثال، en-US، zh-CN", "monthlyReset": "بازنشانی ماهانه", "name": "نام", "noLimit": "بدون محدودیت", @@ -54,39 +56,14 @@ "resetCycle": "چرخه بازنشانی", "resetOn1st": "بازنشانی در روز اول", "selectResetCycle": "لطفاً یک چرخه بازنشانی انتخاب کنید", - "selectSubscribeGroup": "گروه اشتراک را انتخاب کنید", "selectUnitTime": "لطفاً واحد زمان را انتخاب کنید", "speedLimit": "محدودیت سرعت (مگابیت بر ثانیه)", "traffic": "ترافیک", "unitPrice": "قیمت واحد", "unitTime": "واحد زمان" }, - "group": { - "actions": "اقدامات", - "cancel": "لغو", - "confirm": "تأیید", - "confirmDelete": "آیا مطمئن هستید که می‌خواهید حذف کنید؟", - "create": "ایجاد", - "createSubscribeGroup": "ایجاد گروه اشتراک", - "createSuccess": "ایجاد با موفقیت انجام شد", - "delete": "حذف", - "deleteSuccess": "حذف با موفقیت انجام شد", - "deleteWarning": "پس از حذف، داده‌ها قابل بازیابی نیستند. لطفاً با احتیاط ادامه دهید.", - "description": "توضیحات", - "edit": "ویرایش", - "editSubscribeGroup": "ویرایش گروه اشتراک", - "form": { - "cancel": "لغو", - "confirm": "تأیید", - "description": "توضیحات", - "name": "نام" - }, - "name": "نام", - "title": "فهرست گروه‌های اشتراک", - "updateSuccess": "به‌روزرسانی با موفقیت انجام شد", - "updatedAt": "به‌روزرسانی در" - }, "inventory": "محدودیت اشتراک", + "language": "زبان", "name": "نام", "quota": "محدودیت خرید/زمان", "replacement": "تنظیم مجدد قیمت/زمان", @@ -94,11 +71,6 @@ "show": "نمایش", "sold": "تعداد اشتراک", "subscribe": "اشتراک", - "subscribeGroup": "گروه اشتراک", - "tabs": { - "subscribe": "اشتراک", - "subscribeGroup": "گروه اشتراک" - }, "traffic": "ترافیک", "unitPrice": "قیمت واحد", "updateSuccess": "به‌روزرسانی با موفقیت انجام شد" diff --git a/apps/admin/locales/fi-FI/product.json b/apps/admin/locales/fi-FI/product.json index f24fa09..ef41e27 100644 --- a/apps/admin/locales/fi-FI/product.json +++ b/apps/admin/locales/fi-FI/product.json @@ -35,8 +35,10 @@ "discountPercent": "Alennusprosentti", "discount_price": "Alennettu hinta", "duration": "Kesto (kuukautta)", - "groupId": "Tilausryhmä", "inventory": "Tilausraja", + "language": "Kieli", + "languageDescription": "Jätä tyhjäksi oletusarvoa varten ilman kielirajoituksia", + "languagePlaceholder": "Kielitunnus tilaukselle, esim. fi-FI, sv-SE", "monthlyReset": "Kuukausittainen Nollaus", "name": "Nimi", "noLimit": "Ei rajoitusta", @@ -54,39 +56,14 @@ "resetCycle": "Nollausjakso", "resetOn1st": "Nollaus 1. päivänä", "selectResetCycle": "Valitse nollausjakso", - "selectSubscribeGroup": "Valitse tilausryhmä", "selectUnitTime": "Valitse aikayksikkö", "speedLimit": "Nopeusrajoitus ", "traffic": "Liikenne", "unitPrice": "Yksikköhinta", "unitTime": "Aikayksikkö" }, - "group": { - "actions": "Toiminnot", - "cancel": "Peruuta", - "confirm": "Vahvista", - "confirmDelete": "Haluatko varmasti poistaa?", - "create": "Luo", - "createSubscribeGroup": "Luo uusi tilausryhmä", - "createSuccess": "Luonti onnistui", - "delete": "Poista", - "deleteSuccess": "Poisto onnistui", - "deleteWarning": "Poiston jälkeen tietoja ei voi palauttaa, ole varovainen.", - "description": "Kuvaus", - "edit": "Muokkaa", - "editSubscribeGroup": "Muokkaa tilausryhmää", - "form": { - "cancel": "Peruuta", - "confirm": "Vahvista", - "description": "Kuvaus", - "name": "Nimi" - }, - "name": "Nimi", - "title": "Tilausryhmien lista", - "updateSuccess": "Päivitys onnistui", - "updatedAt": "Päivitetty" - }, "inventory": "Tilausraja", + "language": "Kieli", "name": "Nimi", "quota": "Ostorajoitus/kerta", "replacement": "Nollaa hinta/kerta", @@ -94,11 +71,6 @@ "show": "Näytä", "sold": "Tilausmäärä", "subscribe": "Tilaa", - "subscribeGroup": "Tilaa ryhmä", - "tabs": { - "subscribe": "Tilaa", - "subscribeGroup": "Tilaa ryhmä" - }, "traffic": "liikenne", "unitPrice": "Yksikköhinta", "updateSuccess": "Päivitys onnistui" diff --git a/apps/admin/locales/fr-FR/product.json b/apps/admin/locales/fr-FR/product.json index a01b7d6..8ef2c0e 100644 --- a/apps/admin/locales/fr-FR/product.json +++ b/apps/admin/locales/fr-FR/product.json @@ -35,8 +35,10 @@ "discountPercent": "Pourcentage de remise", "discount_price": "Prix remisé", "duration": "Durée (mois)", - "groupId": "Groupe d'abonnement", "inventory": "Limite d'abonnement", + "language": "Langue", + "languageDescription": "Laissez vide pour le défaut sans restriction de langue", + "languagePlaceholder": "Identifiant de langue pour l'abonnement, par exemple, fr-FR, zh-CN", "monthlyReset": "Réinitialisation Mensuelle", "name": "Nom", "noLimit": "Illimité", @@ -54,39 +56,14 @@ "resetCycle": "Cycle de Réinitialisation", "resetOn1st": "Réinitialisation le 1er", "selectResetCycle": "Veuillez sélectionner un cycle de réinitialisation", - "selectSubscribeGroup": "Veuillez sélectionner un groupe d'abonnement", "selectUnitTime": "Veuillez sélectionner l'unité de temps", "speedLimit": "Limite de vitesse ", "traffic": "Trafic", "unitPrice": "Prix unitaire", "unitTime": "Unité de temps" }, - "group": { - "actions": "Actions", - "cancel": "Annuler", - "confirm": "Confirmer", - "confirmDelete": "Êtes-vous sûr de vouloir supprimer ?", - "create": "Créer", - "createSubscribeGroup": "Créer un groupe d'abonnement", - "createSuccess": "Création réussie", - "delete": "Supprimer", - "deleteSuccess": "Suppression réussie", - "deleteWarning": "Les données ne peuvent pas être récupérées après suppression, veuillez procéder avec prudence.", - "description": "Description", - "edit": "Éditer", - "editSubscribeGroup": "Éditer le groupe d'abonnement", - "form": { - "cancel": "Annuler", - "confirm": "Confirmer", - "description": "Description", - "name": "Nom" - }, - "name": "Nom", - "title": "Liste des groupes d'abonnement", - "updateSuccess": "Mise à jour réussie", - "updatedAt": "Date de mise à jour" - }, "inventory": "Limite d'abonnement", + "language": "Langue", "name": "Nom", "quota": "Limite d'achat/par fois", "replacement": "Réinitialiser le prix/par fois", @@ -94,11 +71,6 @@ "show": "Afficher", "sold": "Nombre d'abonnements", "subscribe": "S'abonner", - "subscribeGroup": "S'abonner au groupe", - "tabs": { - "subscribe": "S'abonner", - "subscribeGroup": "Groupe d'abonnement" - }, "traffic": "trafic", "unitPrice": "Prix unitaire", "updateSuccess": "Mise à jour réussie" diff --git a/apps/admin/locales/hi-IN/product.json b/apps/admin/locales/hi-IN/product.json index ee2044b..e74296c 100644 --- a/apps/admin/locales/hi-IN/product.json +++ b/apps/admin/locales/hi-IN/product.json @@ -35,8 +35,10 @@ "discountPercent": "छूट प्रतिशत", "discount_price": "छूट मूल्य", "duration": "अवधि (महीने)", - "groupId": "सदस्यता समूह", "inventory": "सदस्यता सीमा", + "language": "भाषा", + "languageDescription": "डिफ़ॉल्ट के लिए भाषा प्रतिबंध के बिना खाली छोड़ें", + "languagePlaceholder": "सदस्यता के लिए भाषा पहचानकर्ता, जैसे, en-US, zh-CN", "monthlyReset": "मासिक रीसेट", "name": "नाम", "noLimit": "कोई सीमा नहीं", @@ -54,39 +56,14 @@ "resetCycle": "रीसेट चक्र", "resetOn1st": "1 तारीख को रीसेट", "selectResetCycle": "कृपया एक रीसेट चक्र चुनें", - "selectSubscribeGroup": "कृपया सदस्यता समूह चुनें", "selectUnitTime": "कृपया इकाई समय चुनें", "speedLimit": "गति सीमा ", "traffic": "ट्रैफिक", "unitPrice": "इकाई मूल्य", "unitTime": "इकाई समय" }, - "group": { - "actions": "क्रियाएँ", - "cancel": "रद्द करें", - "confirm": "पुष्टि करें", - "confirmDelete": "क्या आप वाकई हटाना चाहते हैं?", - "create": "बनाएँ", - "createSubscribeGroup": "नई सदस्यता समूह बनाएं", - "createSuccess": "सफलतापूर्वक बनाया गया", - "delete": "हटाएँ", - "deleteSuccess": "सफलतापूर्वक हटाया गया", - "deleteWarning": "हटाने के बाद डेटा पुनः प्राप्त नहीं किया जा सकता, कृपया सावधानीपूर्वक कार्य करें।", - "description": "विवरण", - "edit": "संपादित करें", - "editSubscribeGroup": "सदस्यता समूह संपादित करें", - "form": { - "cancel": "रद्द करें", - "confirm": "पुष्टि करें", - "description": "विवरण", - "name": "नाम" - }, - "name": "नाम", - "title": "सदस्यता समूह सूची", - "updateSuccess": "सफलतापूर्वक अपडेट किया गया", - "updatedAt": "अपडेट का समय" - }, "inventory": "सदस्यता सीमा", + "language": "भाषा", "name": "नाम", "quota": "प्रति खरीद सीमा", "replacement": "मूल्य/प्रति बार रीसेट करें", @@ -94,11 +71,6 @@ "show": "दिखाएं", "sold": "सदस्यता गणना", "subscribe": "सदस्यता लें", - "subscribeGroup": "सदस्यता समूह", - "tabs": { - "subscribe": "सदस्यता लें", - "subscribeGroup": "समूह सदस्यता" - }, "traffic": "ट्रैफिक", "unitPrice": "इकाई मूल्य", "updateSuccess": "अपडेट सफल" diff --git a/apps/admin/locales/hu-HU/product.json b/apps/admin/locales/hu-HU/product.json index 23fe718..7f0cb5e 100644 --- a/apps/admin/locales/hu-HU/product.json +++ b/apps/admin/locales/hu-HU/product.json @@ -35,8 +35,10 @@ "discountPercent": "Kedvezmény százalék", "discount_price": "Kedvezményes ár", "duration": "Időtartam (hónap)", - "groupId": "Előfizetési csoport", "inventory": "Előfizetési korlát", + "language": "Nyelv", + "languageDescription": "Hagyja üresen az alapértelmezett nyelvi korlátozás nélkül", + "languagePlaceholder": "A feliratkozás nyelvi azonosítója, pl. en-US, zh-CN", "monthlyReset": "Havi Visszaállítás", "name": "Név", "noLimit": "Korlátlan", @@ -54,39 +56,14 @@ "resetCycle": "Visszaállítási Ciklus", "resetOn1st": "Visszaállítás 1-jén", "selectResetCycle": "Kérjük, válasszon visszaállítási ciklust", - "selectSubscribeGroup": "Kérjük, válassza ki az előfizetési csoportot", "selectUnitTime": "Kérjük, válassza ki az időegységet", "speedLimit": "Sebességkorlát ", "traffic": "Forgalom", "unitPrice": "Egységár", "unitTime": "Időegység" }, - "group": { - "actions": "Műveletek", - "cancel": "Mégse", - "confirm": "Megerősít", - "confirmDelete": "Biztosan törölni szeretné?", - "create": "Létrehozás", - "createSubscribeGroup": "Új előfizetési csoport létrehozása", - "createSuccess": "Sikeres létrehozás", - "delete": "Törlés", - "deleteSuccess": "Sikeres törlés", - "deleteWarning": "A törlés után az adatok nem állíthatók vissza, kérjük, legyen óvatos.", - "description": "Leírás", - "edit": "Szerkesztés", - "editSubscribeGroup": "Előfizetési csoport szerkesztése", - "form": { - "cancel": "Mégse", - "confirm": "Megerősít", - "description": "Leírás", - "name": "Név" - }, - "name": "Név", - "title": "Előfizetési csoportok listája", - "updateSuccess": "Sikeres frissítés", - "updatedAt": "Frissítés ideje" - }, "inventory": "Előfizetési korlát", + "language": "Nyelv", "name": "Név", "quota": "Vásárlási korlát/alkalom", "replacement": "Ár visszaállítása/alkalom", @@ -94,11 +71,6 @@ "show": "Megjelenítés", "sold": "Előfizetések száma", "subscribe": "Feliratkozás", - "subscribeGroup": "Feliratkozási csoport", - "tabs": { - "subscribe": "Feliratkozás", - "subscribeGroup": "Feliratkozási csoport" - }, "traffic": "forgalom", "unitPrice": "Egységár", "updateSuccess": "Sikeres frissítés" diff --git a/apps/admin/locales/ja-JP/product.json b/apps/admin/locales/ja-JP/product.json index 8652942..358185c 100644 --- a/apps/admin/locales/ja-JP/product.json +++ b/apps/admin/locales/ja-JP/product.json @@ -35,8 +35,10 @@ "discountPercent": "割引率", "discount_price": "割引価格", "duration": "期間(月)", - "groupId": "サブスクリプショングループ", "inventory": "サブスクリプション制限", + "language": "言語", + "languageDescription": "言語制限なしのデフォルトの場合は空白のままにしてください", + "languagePlaceholder": "サブスクリプションの言語識別子(例:en-US、zh-CN)", "monthlyReset": "毎月リセット", "name": "名称", "noLimit": "無制限", @@ -54,39 +56,14 @@ "resetCycle": "リセットサイクル", "resetOn1st": "1日にリセット", "selectResetCycle": "リセットサイクルを選択してください", - "selectSubscribeGroup": "サブスクリプショングループを選択してください", "selectUnitTime": "単位時間を選択してください", "speedLimit": "速度制限", "traffic": "トラフィック", "unitPrice": "単価", "unitTime": "単位時間" }, - "group": { - "actions": "操作", - "cancel": "キャンセル", - "confirm": "確認", - "confirmDelete": "削除してもよろしいですか?", - "create": "作成", - "createSubscribeGroup": "新しい購読グループを作成", - "createSuccess": "作成成功", - "delete": "削除", - "deleteSuccess": "削除成功", - "deleteWarning": "削除後はデータを復元できませんので、慎重に操作してください。", - "description": "説明", - "edit": "編集", - "editSubscribeGroup": "購読グループを編集", - "form": { - "cancel": "キャンセル", - "confirm": "確認", - "description": "説明", - "name": "名前" - }, - "name": "名前", - "title": "購読グループ一覧", - "updateSuccess": "更新成功", - "updatedAt": "更新日時" - }, "inventory": "サブスクリプションの制限", + "language": "言語", "name": "名前", "quota": "購入制限/回", "replacement": "リセット価格/回", @@ -94,11 +71,6 @@ "show": "表示", "sold": "サブスクリプション数", "subscribe": "購読", - "subscribeGroup": "グループを購読する", - "tabs": { - "subscribe": "購読", - "subscribeGroup": "購読グループ" - }, "traffic": "トラフィック", "unitPrice": "単価", "updateSuccess": "更新が成功しました" diff --git a/apps/admin/locales/ko-KR/product.json b/apps/admin/locales/ko-KR/product.json index 7897be5..5c03649 100644 --- a/apps/admin/locales/ko-KR/product.json +++ b/apps/admin/locales/ko-KR/product.json @@ -35,8 +35,10 @@ "discountPercent": "할인율", "discount_price": "할인가", "duration": "기간 (개월)", - "groupId": "구독 그룹", "inventory": "구독 한도", + "language": "언어", + "languageDescription": "언어 제한 없이 기본값으로 두려면 비워 두세요", + "languagePlaceholder": "구독을 위한 언어 식별자, 예: en-US, zh-CN", "monthlyReset": "월별 초기화", "name": "이름", "noLimit": "무제한", @@ -54,39 +56,14 @@ "resetCycle": "초기화 주기", "resetOn1st": "매월 1일 초기화", "selectResetCycle": "초기화 주기를 선택하세요", - "selectSubscribeGroup": "구독 그룹을 선택하세요", "selectUnitTime": "단위 시간을 선택하세요", "speedLimit": "속도 제한 ", "traffic": "트래픽", "unitPrice": "단가", "unitTime": "단위 시간" }, - "group": { - "actions": "작업", - "cancel": "취소", - "confirm": "확인", - "confirmDelete": "삭제하시겠습니까?", - "create": "생성", - "createSubscribeGroup": "새 구독 그룹 생성", - "createSuccess": "생성 성공", - "delete": "삭제", - "deleteSuccess": "삭제 성공", - "deleteWarning": "삭제 후 데이터는 복구할 수 없습니다. 신중하게 진행하세요.", - "description": "설명", - "edit": "편집", - "editSubscribeGroup": "구독 그룹 편집", - "form": { - "cancel": "취소", - "confirm": "확인", - "description": "설명", - "name": "이름" - }, - "name": "이름", - "title": "구독 그룹 목록", - "updateSuccess": "업데이트 성공", - "updatedAt": "업데이트 시간" - }, "inventory": "구독 한도", + "language": "언어", "name": "이름", "quota": "구매 제한/회", "replacement": "가격 재설정/회", @@ -94,11 +71,6 @@ "show": "표시", "sold": "구독 수", "subscribe": "구독", - "subscribeGroup": "구독 그룹", - "tabs": { - "subscribe": "구독", - "subscribeGroup": "구독 그룹" - }, "traffic": "트래픽", "unitPrice": "단가", "updateSuccess": "업데이트 성공" diff --git a/apps/admin/locales/no-NO/product.json b/apps/admin/locales/no-NO/product.json index 868c7fd..32c587f 100644 --- a/apps/admin/locales/no-NO/product.json +++ b/apps/admin/locales/no-NO/product.json @@ -35,8 +35,10 @@ "discountPercent": "Rabattprosent", "discount_price": "Rabattert pris", "duration": "Varighet (måneder)", - "groupId": "Abonnementsgruppe", "inventory": "Abonnementsgrense", + "language": "Språk", + "languageDescription": "La stå tom for standard uten språkbegrensning", + "languagePlaceholder": "Språkidentifikator for abonnementet, f.eks. en-US, zh-CN", "monthlyReset": "Månedlig Tilbakestilling", "name": "Navn", "noLimit": "Ubegrenset", @@ -54,39 +56,14 @@ "resetCycle": "Tilbakestill Syklus", "resetOn1st": "Tilbakestill den 1.", "selectResetCycle": "Vennligst velg en tilbakestillingssyklus", - "selectSubscribeGroup": "Vennligst velg abonnementsgruppe", "selectUnitTime": "Vennligst velg enhetstid", "speedLimit": "Hastighetsbegrensning ", "traffic": "Trafikk", "unitPrice": "Enhetspris", "unitTime": "Enhetstid" }, - "group": { - "actions": "Handlinger", - "cancel": "Avbryt", - "confirm": "Bekreft", - "confirmDelete": "Er du sikker på at du vil slette?", - "create": "Opprett", - "createSubscribeGroup": "Opprett ny abonnementsgruppe", - "createSuccess": "Opprettelse vellykket", - "delete": "Slett", - "deleteSuccess": "Sletting vellykket", - "deleteWarning": "Data kan ikke gjenopprettes etter sletting, vær forsiktig.", - "description": "Beskrivelse", - "edit": "Rediger", - "editSubscribeGroup": "Rediger abonnementsgruppe", - "form": { - "cancel": "Avbryt", - "confirm": "Bekreft", - "description": "Beskrivelse", - "name": "Navn" - }, - "name": "Navn", - "title": "Liste over abonnementsgrupper", - "updateSuccess": "Oppdatering vellykket", - "updatedAt": "Oppdatert" - }, "inventory": "Abonnementsgrense", + "language": "Språk", "name": "Navn", "quota": "Kjøpsgrense/gang", "replacement": "Tilbakestill pris/gang", @@ -94,11 +71,6 @@ "show": "Vis", "sold": "Abonnementsantall", "subscribe": "Abonner", - "subscribeGroup": "Abonner på gruppe", - "tabs": { - "subscribe": "Abonner", - "subscribeGroup": "Abonner gruppe" - }, "traffic": "trafikk", "unitPrice": "Enhetspris", "updateSuccess": "Oppdatering vellykket" diff --git a/apps/admin/locales/pl-PL/product.json b/apps/admin/locales/pl-PL/product.json index e98e2ba..326bcd3 100644 --- a/apps/admin/locales/pl-PL/product.json +++ b/apps/admin/locales/pl-PL/product.json @@ -35,8 +35,10 @@ "discountPercent": "Procent zniżki", "discount_price": "Cena po zniżce", "duration": "Czas trwania (miesiące)", - "groupId": "Grupa subskrypcyjna", "inventory": "Limit subskrypcji", + "language": "Język", + "languageDescription": "Pozostaw puste dla domyślnego bez ograniczeń językowych", + "languagePlaceholder": "Identyfikator języka dla subskrypcji, np. en-US, zh-CN", "monthlyReset": "Miesięczny Reset", "name": "Nazwa", "noLimit": "Bez ograniczeń", @@ -54,39 +56,14 @@ "resetCycle": "Cykl Resetowania", "resetOn1st": "Reset 1-go", "selectResetCycle": "Proszę wybrać cykl resetowania", - "selectSubscribeGroup": "Wybierz grupę subskrypcji", "selectUnitTime": "Proszę wybrać jednostkę czasu", "speedLimit": "Limit prędkości ", "traffic": "Ruch", "unitPrice": "Cena jednostkowa", "unitTime": "Jednostka czasu" }, - "group": { - "actions": "Działania", - "cancel": "Anuluj", - "confirm": "Potwierdź", - "confirmDelete": "Czy na pewno chcesz usunąć?", - "create": "Utwórz", - "createSubscribeGroup": "Utwórz nową grupę subskrypcji", - "createSuccess": "Utworzono pomyślnie", - "delete": "Usuń", - "deleteSuccess": "Usunięto pomyślnie", - "deleteWarning": "Po usunięciu danych nie można ich odzyskać, proszę postępować ostrożnie.", - "description": "Opis", - "edit": "Edytuj", - "editSubscribeGroup": "Edytuj grupę subskrypcji", - "form": { - "cancel": "Anuluj", - "confirm": "Potwierdź", - "description": "Opis", - "name": "Nazwa" - }, - "name": "Nazwa", - "title": "Lista grup subskrypcji", - "updateSuccess": "Zaktualizowano pomyślnie", - "updatedAt": "Czas aktualizacji" - }, "inventory": "Limit subskrypcji", + "language": "Język", "name": "Nazwa", "quota": "Limit zakupu/raz", "replacement": "Zresetuj cenę/raz", @@ -94,11 +71,6 @@ "show": "Pokaż", "sold": "Liczba subskrypcji", "subscribe": "Subskrybuj", - "subscribeGroup": "Subskrybuj grupę", - "tabs": { - "subscribe": "Subskrybuj", - "subscribeGroup": "Grupa subskrypcji" - }, "traffic": "ruch", "unitPrice": "Cena jednostkowa", "updateSuccess": "Aktualizacja zakończona pomyślnie" diff --git a/apps/admin/locales/pt-BR/product.json b/apps/admin/locales/pt-BR/product.json index 4a9ddff..d99b1fe 100644 --- a/apps/admin/locales/pt-BR/product.json +++ b/apps/admin/locales/pt-BR/product.json @@ -35,8 +35,10 @@ "discountPercent": "Percentual de desconto", "discount_price": "Preço com desconto", "duration": "Duração (meses)", - "groupId": "Grupo de Assinatura", "inventory": "Limite de Assinatura", + "language": "Idioma", + "languageDescription": "Deixe em branco para padrão sem restrição de idioma", + "languagePlaceholder": "Identificador de idioma para a assinatura, ex: pt-BR, zh-CN", "monthlyReset": "Reinicialização Mensal", "name": "Nome", "noLimit": "Sem limite", @@ -54,39 +56,14 @@ "resetCycle": "Ciclo de Reinicialização", "resetOn1st": "Reiniciar no dia 1", "selectResetCycle": "Por favor, selecione um ciclo de reinicialização", - "selectSubscribeGroup": "Por favor, selecione o grupo de assinatura", "selectUnitTime": "Por favor, selecione a unidade de tempo", "speedLimit": "Limite de velocidade ", "traffic": "Tráfego", "unitPrice": "Preço unitário", "unitTime": "Unidade de tempo" }, - "group": { - "actions": "Ações", - "cancel": "Cancelar", - "confirm": "Confirmar", - "confirmDelete": "Tem certeza de que deseja excluir?", - "create": "Criar", - "createSubscribeGroup": "Criar Novo Grupo de Assinatura", - "createSuccess": "Criado com sucesso", - "delete": "Excluir", - "deleteSuccess": "Excluído com sucesso", - "deleteWarning": "Os dados não poderão ser recuperados após a exclusão, por favor, proceda com cautela.", - "description": "Descrição", - "edit": "Editar", - "editSubscribeGroup": "Editar Grupo de Assinatura", - "form": { - "cancel": "Cancelar", - "confirm": "Confirmar", - "description": "Descrição", - "name": "Nome" - }, - "name": "Nome", - "title": "Lista de Grupos de Assinatura", - "updateSuccess": "Atualizado com sucesso", - "updatedAt": "Atualizado em" - }, "inventory": "Limite de Assinatura", + "language": "Idioma", "name": "nome", "quota": "Limite de compra/vez", "replacement": "Redefinir preço/vez", @@ -94,11 +71,6 @@ "show": "Exibir", "sold": "Contagem de Assinaturas", "subscribe": "Inscrever-se", - "subscribeGroup": "Inscrever-se no grupo", - "tabs": { - "subscribe": "Inscrever-se", - "subscribeGroup": "Grupo de Inscrição" - }, "traffic": "tráfego", "unitPrice": "Preço Unitário", "updateSuccess": "Atualização bem-sucedida" diff --git a/apps/admin/locales/ro-RO/product.json b/apps/admin/locales/ro-RO/product.json index 830df56..866d79f 100644 --- a/apps/admin/locales/ro-RO/product.json +++ b/apps/admin/locales/ro-RO/product.json @@ -35,8 +35,10 @@ "discountPercent": "Procent reducere", "discount_price": "Preț redus", "duration": "Durată (luni)", - "groupId": "Grup de Abonament", "inventory": "Limit de Abonament", + "language": "Limba", + "languageDescription": "Lăsați gol pentru implicit fără restricții de limbă", + "languagePlaceholder": "Identificator de limbă pentru abonament, de exemplu, en-US, zh-CN", "monthlyReset": "Resetare Lunară", "name": "Nume", "noLimit": "Fără limită", @@ -54,39 +56,14 @@ "resetCycle": "Ciclu de Resetare", "resetOn1st": "Resetare pe 1", "selectResetCycle": "Vă rugăm să selectați un ciclu de resetare", - "selectSubscribeGroup": "Vă rugăm să selectați grupul de abonament", "selectUnitTime": "Vă rugăm să selectați unitatea de timp", "speedLimit": "Limită de viteză ", "traffic": "Trafic", "unitPrice": "Preț unitar", "unitTime": "Unitate de timp" }, - "group": { - "actions": "Acțiuni", - "cancel": "Anulează", - "confirm": "Confirmă", - "confirmDelete": "Sigur doriți să ștergeți?", - "create": "Creează", - "createSubscribeGroup": "Creează un grup de abonamente", - "createSuccess": "Creat cu succes", - "delete": "Șterge", - "deleteSuccess": "Șters cu succes", - "deleteWarning": "După ștergere, datele nu pot fi recuperate, vă rugăm să acționați cu prudență.", - "description": "Descriere", - "edit": "Editează", - "editSubscribeGroup": "Editează grupul de abonamente", - "form": { - "cancel": "Anulează", - "confirm": "Confirmă", - "description": "Descriere", - "name": "Nume" - }, - "name": "Nume", - "title": "Lista grupurilor de abonamente", - "updateSuccess": "Actualizat cu succes", - "updatedAt": "Data actualizării" - }, "inventory": "Limită de abonament", + "language": "Limba", "name": "Nume", "quota": "Limită de achiziție/pe tranzacție", "replacement": "Resetare preț/pe utilizare", @@ -94,11 +71,6 @@ "show": "Afișare", "sold": "Număr de abonamente", "subscribe": "Abonare", - "subscribeGroup": "Abonare grup", - "tabs": { - "subscribe": "Abonare", - "subscribeGroup": "Grup de abonare" - }, "traffic": "trafic", "unitPrice": "Preț unitar", "updateSuccess": "Actualizare reușită" diff --git a/apps/admin/locales/ru-RU/product.json b/apps/admin/locales/ru-RU/product.json index fc331f5..9e17818 100644 --- a/apps/admin/locales/ru-RU/product.json +++ b/apps/admin/locales/ru-RU/product.json @@ -35,8 +35,10 @@ "discountPercent": "Процент скидки", "discount_price": "Цена со скидкой", "duration": "Продолжительность (месяцы)", - "groupId": "Группа подписки", "inventory": "Лимит подписки", + "language": "Язык", + "languageDescription": "Оставьте пустым для использования по умолчанию без языковых ограничений", + "languagePlaceholder": "Идентификатор языка для подписки, например, en-US, zh-CN", "monthlyReset": "Ежемесячный Сброс", "name": "Название", "noLimit": "Без ограничений", @@ -54,39 +56,14 @@ "resetCycle": "Цикл Сброса", "resetOn1st": "Сброс 1-го числа", "selectResetCycle": "Пожалуйста, выберите цикл сброса", - "selectSubscribeGroup": "Пожалуйста, выберите группу подписки", "selectUnitTime": "Пожалуйста, выберите единицу времени", "speedLimit": "Ограничение скорости", "traffic": "Трафик", "unitPrice": "Цена за единицу", "unitTime": "Единица времени" }, - "group": { - "actions": "Действия", - "cancel": "Отмена", - "confirm": "Подтвердить", - "confirmDelete": "Вы уверены, что хотите удалить?", - "create": "Создать", - "createSubscribeGroup": "Создать новую группу подписок", - "createSuccess": "Успешно создано", - "delete": "Удалить", - "deleteSuccess": "Успешно удалено", - "deleteWarning": "После удаления данные не могут быть восстановлены, пожалуйста, будьте осторожны.", - "description": "Описание", - "edit": "Редактировать", - "editSubscribeGroup": "Редактировать группу подписок", - "form": { - "cancel": "Отмена", - "confirm": "Подтвердить", - "description": "Описание", - "name": "Название" - }, - "name": "Название", - "title": "Список групп подписок", - "updateSuccess": "Успешно обновлено", - "updatedAt": "Время обновления" - }, "inventory": "Лимит подписки", + "language": "Язык", "name": "название", "quota": "Лимит/раз", "replacement": "Сбросить цену/раз", @@ -94,11 +71,6 @@ "show": "Показать", "sold": "Количество подписок", "subscribe": "Подписаться", - "subscribeGroup": "Подписаться на группу", - "tabs": { - "subscribe": "Подписаться", - "subscribeGroup": "Группа подписок" - }, "traffic": "трафик", "unitPrice": "Цена за единицу", "updateSuccess": "Обновление успешно" diff --git a/apps/admin/locales/th-TH/product.json b/apps/admin/locales/th-TH/product.json index b9707ee..4ec025e 100644 --- a/apps/admin/locales/th-TH/product.json +++ b/apps/admin/locales/th-TH/product.json @@ -35,8 +35,10 @@ "discountPercent": "เปอร์เซ็นต์ส่วนลด", "discount_price": "ราคาหลังหักส่วนลด", "duration": "ระยะเวลา (เดือน)", - "groupId": "กลุ่มการสมัครสมาชิก", "inventory": "ขีดจำกัดการสมัครสมาชิก", + "language": "ภาษา", + "languageDescription": "ปล่อยว่างไว้สำหรับค่าเริ่มต้นโดยไม่มีข้อจำกัดด้านภาษา", + "languagePlaceholder": "ตัวระบุภาษาสำหรับการสมัครสมาชิก เช่น en-US, zh-CN", "monthlyReset": "รีเซ็ตทุกเดือน", "name": "ชื่อ", "noLimit": "ไม่จำกัด", @@ -54,39 +56,14 @@ "resetCycle": "รอบการรีเซ็ต", "resetOn1st": "รีเซ็ตในวันที่ 1", "selectResetCycle": "กรุณาเลือกรอบการรีเซ็ต", - "selectSubscribeGroup": "กรุณาเลือกกลุ่มการสมัครสมาชิก", "selectUnitTime": "กรุณาเลือกหน่วยเวลา", "speedLimit": "จำกัดความเร็ว ", "traffic": "ปริมาณข้อมูล", "unitPrice": "ราคาต่อหน่วย", "unitTime": "หน่วยเวลา" }, - "group": { - "actions": "การดำเนินการ", - "cancel": "ยกเลิก", - "confirm": "ยืนยัน", - "confirmDelete": "ยืนยันการลบหรือไม่?", - "create": "สร้าง", - "createSubscribeGroup": "สร้างกลุ่มการสมัครใหม่", - "createSuccess": "สร้างสำเร็จ", - "delete": "ลบ", - "deleteSuccess": "ลบสำเร็จ", - "deleteWarning": "ข้อมูลจะไม่สามารถกู้คืนได้หลังจากลบ โปรดดำเนินการด้วยความระมัดระวัง", - "description": "คำอธิบาย", - "edit": "แก้ไข", - "editSubscribeGroup": "แก้ไขกลุ่มการสมัคร", - "form": { - "cancel": "ยกเลิก", - "confirm": "ยืนยัน", - "description": "คำอธิบาย", - "name": "ชื่อ" - }, - "name": "ชื่อ", - "title": "รายการกลุ่มการสมัคร", - "updateSuccess": "อัปเดตสำเร็จ", - "updatedAt": "เวลาอัปเดต" - }, "inventory": "ขีดจำกัดการสมัครสมาชิก", + "language": "ภาษา", "name": "ชื่อ", "quota": "จำกัดการซื้อ/ครั้ง", "replacement": "รีเซ็ตราคา/ครั้ง", @@ -94,11 +71,6 @@ "show": "แสดง", "sold": "จำนวนการสมัครสมาชิก", "subscribe": "สมัครสมาชิก", - "subscribeGroup": "สมัครกลุ่ม", - "tabs": { - "subscribe": "สมัครสมาชิก", - "subscribeGroup": "กลุ่มสมัครสมาชิก" - }, "traffic": "การจราจร", "unitPrice": "ราคาต่อหน่วย", "updateSuccess": "อัปเดตสำเร็จ" diff --git a/apps/admin/locales/tr-TR/product.json b/apps/admin/locales/tr-TR/product.json index cf846d4..506e04b 100644 --- a/apps/admin/locales/tr-TR/product.json +++ b/apps/admin/locales/tr-TR/product.json @@ -35,8 +35,10 @@ "discountPercent": "İndirim Yüzdesi", "discount_price": "İndirimli Fiyat", "duration": "Süre (ay)", - "groupId": "Abonelik Grubu", "inventory": "Abonelik Limiti", + "language": "Dil", + "languageDescription": "Varsayılan dil kısıtlaması olmadan boş bırakın", + "languagePlaceholder": "Abonelik için dil tanımlayıcısı, örn. en-US, zh-CN", "monthlyReset": "Aylık Sıfırlama", "name": "Ad", "noLimit": "Sınırsız", @@ -54,39 +56,14 @@ "resetCycle": "Sıfırlama Döngüsü", "resetOn1st": "1'inde Sıfırla", "selectResetCycle": "Lütfen bir sıfırlama döngüsü seçin", - "selectSubscribeGroup": "Abonelik Grubunu Seçiniz", "selectUnitTime": "Lütfen birim zamanı seçin", "speedLimit": "Hız Sınırı ", "traffic": "Trafik", "unitPrice": "Birim fiyatı", "unitTime": "Birim zamanı" }, - "group": { - "actions": "Eylemler", - "cancel": "İptal", - "confirm": "Onayla", - "confirmDelete": "Silmek istediğinizden emin misiniz?", - "create": "Oluştur", - "createSubscribeGroup": "Yeni Abonelik Grubu Oluştur", - "createSuccess": "Başarıyla oluşturuldu", - "delete": "Sil", - "deleteSuccess": "Başarıyla silindi", - "deleteWarning": "Sildikten sonra veriler geri alınamaz, lütfen dikkatli olun.", - "description": "Açıklama", - "edit": "Düzenle", - "editSubscribeGroup": "Abonelik Grubunu Düzenle", - "form": { - "cancel": "İptal", - "confirm": "Onayla", - "description": "Açıklama", - "name": "Ad" - }, - "name": "Ad", - "title": "Abonelik Grubu Listesi", - "updateSuccess": "Başarıyla güncellendi", - "updatedAt": "Güncellenme Zamanı" - }, "inventory": "Abonelik Limiti", + "language": "Dil", "name": "isim", "quota": "Kota/satın alma", "replacement": "Fiyatı sıfırla/kez", @@ -94,11 +71,6 @@ "show": "Göster", "sold": "Abonelik Sayısı", "subscribe": "Abone Ol", - "subscribeGroup": "Gruba Abone Ol", - "tabs": { - "subscribe": "Abone Ol", - "subscribeGroup": "Abone Grubu" - }, "traffic": "trafik", "unitPrice": "Birim Fiyatı", "updateSuccess": "Güncelleme başarılı" diff --git a/apps/admin/locales/uk-UA/product.json b/apps/admin/locales/uk-UA/product.json index e1948ce..3c2b58c 100644 --- a/apps/admin/locales/uk-UA/product.json +++ b/apps/admin/locales/uk-UA/product.json @@ -35,8 +35,10 @@ "discountPercent": "Відсоток знижки", "discount_price": "Ціна зі знижкою", "duration": "Тривалість (місяці)", - "groupId": "Група підписки", "inventory": "Ліміт підписки", + "language": "Мова", + "languageDescription": "Залиште порожнім для значення за замовчуванням без обмеження за мовою", + "languagePlaceholder": "Ідентифікатор мови для підписки, наприклад, en-US, zh-CN", "monthlyReset": "Щомісячне Скидання", "name": "Назва", "noLimit": "Без обмежень", @@ -54,39 +56,14 @@ "resetCycle": "Цикл Скидання", "resetOn1st": "Скидання 1-го числа", "selectResetCycle": "Будь ласка, виберіть цикл скидання", - "selectSubscribeGroup": "Будь ласка, виберіть групу підписки", "selectUnitTime": "Будь ласка, виберіть одиницю часу", "speedLimit": "Обмеження швидкості", "traffic": "Трафік", "unitPrice": "Ціна за одиницю", "unitTime": "Одиниця часу" }, - "group": { - "actions": "Дії", - "cancel": "Скасувати", - "confirm": "Підтвердити", - "confirmDelete": "Ви впевнені, що хочете видалити?", - "create": "Створити", - "createSubscribeGroup": "Створити нову групу підписки", - "createSuccess": "Успішно створено", - "delete": "Видалити", - "deleteSuccess": "Успішно видалено", - "deleteWarning": "Після видалення дані не можуть бути відновлені, будь ласка, будьте обережні.", - "description": "Опис", - "edit": "Редагувати", - "editSubscribeGroup": "Редагувати групу підписки", - "form": { - "cancel": "Скасувати", - "confirm": "Підтвердити", - "description": "Опис", - "name": "Назва" - }, - "name": "Назва", - "title": "Список груп підписки", - "updateSuccess": "Успішно оновлено", - "updatedAt": "Час оновлення" - }, "inventory": "Ліміт підписки", + "language": "Мова", "name": "Назва", "quota": "Обмеження на покупку/раз", "replacement": "Скидання ціни/раз", @@ -94,11 +71,6 @@ "show": "Показати", "sold": "Кількість підписок", "subscribe": "Підписатися", - "subscribeGroup": "Підписатися на групу", - "tabs": { - "subscribe": "Підписатися", - "subscribeGroup": "Група підписок" - }, "traffic": "Трафік", "unitPrice": "Ціна за одиницю", "updateSuccess": "Оновлення успішне" diff --git a/apps/admin/locales/vi-VN/product.json b/apps/admin/locales/vi-VN/product.json index dc7fa76..61994de 100644 --- a/apps/admin/locales/vi-VN/product.json +++ b/apps/admin/locales/vi-VN/product.json @@ -35,8 +35,10 @@ "discountPercent": "Phần trăm giảm giá", "discount_price": "Giá sau giảm", "duration": "Thời gian (tháng)", - "groupId": "Nhóm Đăng Ký", "inventory": "Giới Hạn Đăng Ký", + "language": "Ngôn ngữ", + "languageDescription": "Để trống cho mặc định không có hạn chế ngôn ngữ", + "languagePlaceholder": "Mã định danh ngôn ngữ cho đăng ký, ví dụ: en-US, zh-CN", "monthlyReset": "Đặt Lại Hàng Tháng", "name": "Tên", "noLimit": "Không giới hạn", @@ -54,39 +56,14 @@ "resetCycle": "Chu Kỳ Đặt Lại", "resetOn1st": "Đặt Lại vào Ngày 1", "selectResetCycle": "Vui lòng chọn một chu kỳ đặt lại", - "selectSubscribeGroup": "Vui lòng chọn nhóm đăng ký", "selectUnitTime": "Vui lòng chọn đơn vị thời gian", "speedLimit": "Giới hạn tốc độ ", "traffic": "Lưu lượng", "unitPrice": "Đơn giá", "unitTime": "Đơn vị thời gian" }, - "group": { - "actions": "Hành động", - "cancel": "Hủy bỏ", - "confirm": "Xác nhận", - "confirmDelete": "Bạn có chắc chắn muốn xóa không?", - "create": "Tạo mới", - "createSubscribeGroup": "Tạo nhóm đăng ký mới", - "createSuccess": "Tạo thành công", - "delete": "Xóa", - "deleteSuccess": "Xóa thành công", - "deleteWarning": "Dữ liệu không thể khôi phục sau khi xóa, hãy cẩn thận.", - "description": "Mô tả", - "edit": "Chỉnh sửa", - "editSubscribeGroup": "Chỉnh sửa nhóm đăng ký", - "form": { - "cancel": "Hủy bỏ", - "confirm": "Xác nhận", - "description": "Mô tả", - "name": "Tên" - }, - "name": "Tên", - "title": "Danh sách nhóm đăng ký", - "updateSuccess": "Cập nhật thành công", - "updatedAt": "Thời gian cập nhật" - }, "inventory": "Giới Hạn Đăng Ký", + "language": "Ngôn ngữ", "name": "Tên", "quota": "Giới hạn mua/lần", "replacement": "Đặt lại giá/lần", @@ -94,11 +71,6 @@ "show": "Hiển thị", "sold": "Số lượng đăng ký", "subscribe": "Đăng ký", - "subscribeGroup": "Nhóm đăng ký", - "tabs": { - "subscribe": "Đăng ký", - "subscribeGroup": "Nhóm đăng ký" - }, "traffic": "lưu lượng", "unitPrice": "Đơn giá", "updateSuccess": "Cập nhật thành công" diff --git a/apps/admin/locales/zh-HK/product.json b/apps/admin/locales/zh-HK/product.json index 99b657c..de1358c 100644 --- a/apps/admin/locales/zh-HK/product.json +++ b/apps/admin/locales/zh-HK/product.json @@ -35,8 +35,10 @@ "discountPercent": "折扣比", "discount_price": "折扣價格", "duration": "時長(月)", - "groupId": "訂閱組別", "inventory": "訂閱限制", + "language": "語言", + "languageDescription": "留空以使用默認的無語言限制", + "languagePlaceholder": "訂閱的語言標識符,例如,en-US,zh-CN", "monthlyReset": "每月重置", "name": "名稱", "noLimit": "無限制", @@ -54,39 +56,14 @@ "resetCycle": "重置週期", "resetOn1st": "每月1日重置", "selectResetCycle": "請選擇重置週期", - "selectSubscribeGroup": "請選擇訂閱組", "selectUnitTime": "請選擇單位時間", "speedLimit": "速度限制", "traffic": "流量", "unitPrice": "單價", "unitTime": "單位時間" }, - "group": { - "actions": "操作", - "cancel": "取消", - "confirm": "確認", - "confirmDelete": "確定刪除嗎?", - "create": "建立", - "createSubscribeGroup": "新建訂閱組", - "createSuccess": "建立成功", - "delete": "刪除", - "deleteSuccess": "刪除成功", - "deleteWarning": "刪除後資料無法恢復,請謹慎操作。", - "description": "描述", - "edit": "編輯", - "editSubscribeGroup": "編輯訂閱組", - "form": { - "cancel": "取消", - "confirm": "確認", - "description": "描述", - "name": "名稱" - }, - "name": "名稱", - "title": "訂閱組列表", - "updateSuccess": "更新成功", - "updatedAt": "更新時間" - }, "inventory": "訂閱限制", + "language": "語言", "name": "名稱", "quota": "限購/次", "replacement": "重置價格/次", @@ -94,11 +71,6 @@ "show": "顯示", "sold": "訂閱數量", "subscribe": "訂閱", - "subscribeGroup": "訂閱組", - "tabs": { - "subscribe": "訂閱", - "subscribeGroup": "訂閱組" - }, "traffic": "流量", "unitPrice": "單價", "updateSuccess": "更新成功" diff --git a/apps/user/app/(main)/purchasing/page.tsx b/apps/user/app/(main)/purchasing/page.tsx index dd0e9be..8f1808a 100644 --- a/apps/user/app/(main)/purchasing/page.tsx +++ b/apps/user/app/(main)/purchasing/page.tsx @@ -1,4 +1,5 @@ import { getSubscription } from '@/services/user/portal'; +import { getLocale } from 'next-intl/server'; import Content from './content'; export default async function Page({ @@ -9,9 +10,15 @@ export default async function Page({ }>; }) { const { id } = await searchParams; - const { data } = await getSubscription({ - skipErrorHandler: true, - }); + const locale = await getLocale(); + const { data } = await getSubscription( + { + language: locale, + }, + { + skipErrorHandler: true, + }, + ); const subscriptionList = data.data?.list || []; const subscription = subscriptionList.find((item) => item.id === Number(id)); diff --git a/apps/user/components/main/product-showcase/index.tsx b/apps/user/components/main/product-showcase/index.tsx index 27046de..9a56b29 100644 --- a/apps/user/components/main/product-showcase/index.tsx +++ b/apps/user/components/main/product-showcase/index.tsx @@ -1,11 +1,18 @@ import { getSubscription } from '@/services/user/portal'; +import { getLocale } from 'next-intl/server'; import { Content } from './content'; export async function ProductShowcase() { try { - const { data } = await getSubscription({ - skipErrorHandler: true, - }); + const locale = await getLocale(); + const { data } = await getSubscription( + { + language: locale, + }, + { + skipErrorHandler: true, + }, + ); const subscriptionList = data.data?.list || []; if (subscriptionList.length === 0) return null; diff --git a/apps/user/services/user/portal.ts b/apps/user/services/user/portal.ts index abac9f9..52bef89 100644 --- a/apps/user/services/user/portal.ts +++ b/apps/user/services/user/portal.ts @@ -80,11 +80,18 @@ export async function purchase(body: API.PortalPurchaseRequest, options?: { [key } /** Get Subscription GET /v1/public/portal/subscribe */ -export async function getSubscription(options?: { [key: string]: any }) { +export async function getSubscription( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.GetSubscriptionParams, + options?: { [key: string]: any }, +) { return request( '/v1/public/portal/subscribe', { method: 'GET', + params: { + ...params, + }, ...(options || {}), }, ); diff --git a/apps/user/services/user/typings.d.ts b/apps/user/services/user/typings.d.ts index c7d2672..0e7658f 100644 --- a/apps/user/services/user/typings.d.ts +++ b/apps/user/services/user/typings.d.ts @@ -290,6 +290,14 @@ declare namespace API { total: number; }; + type GetSubscriptionParams = { + language: string; + }; + + type GetSubscriptionRequest = { + language: string; + }; + type GetSubscriptionResponse = { list: Subscribe[]; };