docs: Update localization files with new content
This commit is contained in:
@@ -593,4 +593,11 @@ export const ar = {
|
||||
failedToDownloadVideo: "فشل تنزيل الفيديو. يرجى المحاولة مرة أخرى.",
|
||||
failedToDownload: "فشل التنزيل. يرجى المحاولة مرة أخرى.",
|
||||
playlistDownloadStarted: "بدأ تنزيل قائمة التشغيل",
|
||||
thumbnailRefreshFailed: "فشل تحديث الصورة المصغرة",
|
||||
videoUpdated: "تم تحديث الفيديو بنجاح",
|
||||
copyUrl: "نسخ الرابط",
|
||||
new: "جديد",
|
||||
disclaimerTitle: "إخلاء المسؤولية",
|
||||
disclaimerText: "1. الغرض والقيود\nهذا البرنامج (بما في ذلك الكود والوثائق) مخصص فقط للتعلم الشخصي والبحث والتبادل التقني. يُحظر تمامًا استخدام هذا البرنامج لأي أغراض تجارية أو لأي أنشطة غير قانونية تنتهك القوانين واللوائح المحلية.\n\n2. المسؤولية\nالمطور ليس على علم ولا يملك أي سيطرة على كيفية استخدام المستخدمين لهذا البرنامج. يتحمل المستخدم وحده أي مسؤوليات قانونية أو نزاعات أو أضرار تنشأ عن الاستخدام غير القانوني أو غير السليم لهذا البرنامج (بما في ذلك على سبيل المثال لا الحصر انتهاك حقوق الطبع والنشر). لا يتحمل المطور أي مسؤولية مباشرة أو غير مباشرة أو مشتركة.\n\n3. التعديلات والتوزيع\nهذا المشروع مفتوح المصدر. يجب على أي فرد أو منظمة تقوم بتعديل أو تفرع هذا الكود الالتزام بترخيص المصدر المفتوح. هام: إذا قام طرف ثالث بتعديل الكود لتجاوز أو إزالة آليات مصادقة/أمان المستخدم الأصلية وتوزيع مثل هذه الإصدارات، فإن المعدل/الموزع يتحمل المسؤولية الكاملة عن أي عواقب. ننصح بشدة بعدم تجاوز أو العبث بأي آليات للتحقق من الأمان.\n\n4. بيان غير ربحي\nهذا مشروع مفتوح المصدر مجاني تمامًا. لا يقبل المطور التبرعات ولم ينشر أي صفحات للتبرع. لا يسمح البرنامج نفسه بأي رسوم ولا يقدم أي خدمات مدفوعة. يرجى توخي الحذر والحذر من أي عمليات احتيال أو معلومات مضللة تدعي تحصيل رسوم نيابة عن هذا المشروع.",
|
||||
|
||||
};
|
||||
|
||||
38
frontend/src/utils/locales/check_translations.py
Normal file
38
frontend/src/utils/locales/check_translations.py
Normal file
@@ -0,0 +1,38 @@
|
||||
import os
|
||||
import re
|
||||
|
||||
locales_dir = '../locales'
|
||||
en_file = os.path.join(locales_dir, 'en.ts')
|
||||
|
||||
def extract_keys(file_path):
|
||||
keys = set()
|
||||
with open(file_path, 'r', encoding='utf-8') as f:
|
||||
for line in f:
|
||||
match = re.search(r'^\s*(\w+):', line)
|
||||
if match:
|
||||
keys.add(match.group(1))
|
||||
return keys
|
||||
|
||||
en_keys = extract_keys(en_file)
|
||||
print(f"Found {len(en_keys)} keys in en.ts")
|
||||
|
||||
missing_report = {}
|
||||
|
||||
for filename in os.listdir(locales_dir):
|
||||
if filename == 'en.ts' or not filename.endswith('.ts'):
|
||||
continue
|
||||
|
||||
file_path = os.path.join(locales_dir, filename)
|
||||
keys = extract_keys(file_path)
|
||||
|
||||
missing = en_keys - keys
|
||||
if missing:
|
||||
missing_report[filename] = missing
|
||||
|
||||
if not missing_report:
|
||||
print("All good! No missing keys found.")
|
||||
else:
|
||||
for filename, missing in missing_report.items():
|
||||
print(f"\nMissing keys in {filename}:")
|
||||
for key in sorted(missing):
|
||||
print(f" - {key}")
|
||||
@@ -574,4 +574,13 @@ export const de = {
|
||||
failedToDownloadVideo: "Fehler beim Herunterladen des Videos. Bitte versuchen Sie es erneut.",
|
||||
failedToDownload: "Fehler beim Herunterladen. Bitte versuchen Sie es erneut.",
|
||||
playlistDownloadStarted: "Playlist-Download gestartet",
|
||||
cleanupTempFilesConfirmMessage: "Dadurch werden alle .ytdl- und .part-Dateien im Upload-Verzeichnis dauerhaft gelöscht. Stellen Sie sicher, dass keine Downloads aktiv sind, bevor Sie fortfahren.",
|
||||
cleanupTempFilesActiveDownloads: "Temporäre Dateien können nicht bereinigt werden, während Downloads aktiv sind. Bitte warten Sie, bis alle Downloads abgeschlossen sind, oder brechen Sie sie zuerst ab.",
|
||||
status: "Status",
|
||||
videoDownloading: "Video wird heruntergeladen",
|
||||
copyUrl: "URL kopieren",
|
||||
new: "NEU",
|
||||
disclaimerTitle: "Haftungsausschluss",
|
||||
disclaimerText: "1. Zweck und Einschränkungen\nDiese Software (einschließlich Code und Dokumentation) ist ausschließlich für persönliches Lernen, Forschung und technischen Austausch bestimmt. Es ist strengstens untersagt, diese Software für kommerzielle Zwecke oder illegale Aktivitäten zu verwenden, die gegen lokale Gesetze und Vorschriften verstoßen.\n\n2. Haftung\nDer Entwickler hat keine Kontrolle darüber, wie Benutzer diese Software verwenden. Jegliche rechtliche Haftung, Streitigkeiten oder Schäden, die aus der illegalen oder unsachgemäßen Verwendung dieser Software entstehen (einschließlich, aber nicht beschränkt auf Urheberrechtsverletzungen), liegen allein beim Benutzer. Der Entwickler übernimmt keine direkte, indirekte oder gesamtschuldnerische Haftung.\n\n3. Änderungen und Verbreitung\nDieses Projekt ist Open Source. Jede Einzelperson oder Organisation, die diesen Code ändert oder forkt, muss die Open-Source-Lizenz einhalten. Wichtig: Wenn Dritte den Code ändern, um die ursprünglichen Benutzerauthentifizierungs-/Sicherheitsmechanismen zu umgehen oder zu entfernen, und solche Versionen verbreiten, trägt der Modifikator/Verteiler die volle Verantwortung für alle Konsequenzen. Wir raten dringend davon ab, Sicherheitsüberprüfungsmechanismen zu umgehen oder zu manipulieren.\n\n4. Gemeinnützige Erklärung\nDies ist ein komplett kostenloses Open-Source-Projekt. Der Entwickler akzeptiert keine Spenden und hat nie Spendenseiten veröffentlicht. Die Software selbst erlaubt keine Gebühren und bietet keine kostenpflichtigen Dienste an. Bitte seien Sie wachsam und hüten Sie sich vor Betrug oder irreführenden Informationen, die behaupten, Gebühren im Namen dieses Projekts zu erheben.",
|
||||
|
||||
};
|
||||
|
||||
@@ -580,4 +580,14 @@ export const es = {
|
||||
failedToDownloadVideo: "Error al descargar el video. Inténtalo de nuevo.",
|
||||
failedToDownload: "Error al descargar. Inténtalo de nuevo.",
|
||||
playlistDownloadStarted: "Descarga de lista de reproducción iniciada",
|
||||
collectionNotFound: "Colección no encontrada",
|
||||
continue: "Continuar",
|
||||
failedToDeleteVideo: "Error al eliminar el video",
|
||||
loadingCollection: "Cargando colección...",
|
||||
videoRemovedSuccessfully: "Video eliminado correctamente",
|
||||
copyUrl: "Copiar URL",
|
||||
new: "NUEVO",
|
||||
disclaimerTitle: "Descargo de responsabilidad",
|
||||
disclaimerText: "1. Propósito y Restricciones\nEste software (incluyendo código y documentación) está destinado únicamente para aprendizaje personal, investigación e intercambio técnico. Está estrictamente prohibido utilizar este software para fines comerciales o actividades ilegales que violen las leyes y regulaciones locales.\n\n2. Responsabilidad\nEl desarrollador desconoce y no tiene control sobre cómo los usuarios utilizan este software. Cualquier responsabilidad legal, disputa o daño derivado del uso ilegal o indebido de este software (incluyendo, entre otros, la infracción de derechos de autor) recaerá únicamente en el usuario. El desarrollador no asume ninguna responsabilidad directa, indirecta o conjunta.\n\n3. Modificaciones y Distribución\nEste proyecto es de código abierto. Cualquier individuo u organización que modifique o bifurque este código debe cumplir con la licencia de código abierto. Importante: Si un tercero modifica el código para eludir o eliminar los mecanismos originales de autenticación/seguridad del usuario y distribuye dichas versiones, el modificador/distribuidor asume toda la responsabilidad por cualquier consecuencia. Desaconsejamos encarecidamente eludir o manipular cualquier mecanismo de verificación de seguridad.\n\n4. Declaración Sin Fines de Lucro\nEste es un proyecto de código abierto completamente gratuito. El desarrollador no acepta donaciones y nunca ha publicado páginas de donación. El software en sí no permite cargos y no ofrece servicios pagos. Por favor, esté atento y tenga cuidado con cualquier estafa o información engañosa que reclame cobrar tarifas en nombre de este proyecto.",
|
||||
|
||||
};
|
||||
|
||||
@@ -627,4 +627,9 @@ export const fr = {
|
||||
failedToDownloadVideo: "Échec du téléchargement de la vidéo. Veuillez réessayer.",
|
||||
failedToDownload: "Échec du téléchargement. Veuillez réessayer.",
|
||||
playlistDownloadStarted: "Téléchargement de la playlist commencé",
|
||||
copyUrl: "Copier l'URL",
|
||||
new: "NOUVEAU",
|
||||
disclaimerTitle: "Avis de non-responsabilité",
|
||||
disclaimerText: "1. Objectif et Restrictions\nCe logiciel (y compris le code et la documentation) est destiné uniquement à l'apprentissage personnel, à la recherche et à l'échange technique. Il est strictement interdit d'utiliser ce logiciel à des fins commerciales ou pour toute activité illégale violant les lois et réglementations locales.\n\n2. Responsabilité\nLe développeur n'a aucune connaissance et aucun contrôle sur la façon dont les utilisateurs utilisent ce logiciel. Toute responsabilité légale, litige ou dommage découlant de l'utilisation illégale ou inappropriée de ce logiciel (y compris, mais sans s'y limiter, la violation du droit d'auteur) sera à la charge exclusive de l'utilisateur. Le développeur n'assume aucune responsabilité directe, indirecte ou conjointe.\n\n3. Modifications et Distribution\nCe projet est open source. Tout individu ou organisation modifiant ou forkant ce code doit se conformer à la licence open source. Important : Si un tiers modifie le code pour contourner ou supprimer les mécanismes d'authentification/sécurité d'origine de l'utilisateur et distribue de telles versions, le modificateur/distributeur porte l'entière responsabilité de toutes les conséquences. Nous déconseillons fortement de contourner ou d'altérer tout mécanisme de vérification de sécurité.\n\n4. Déclaration à But Non Lucratif\nCeci est un projet open source entièrement gratuit. Le développeur n'accepte pas de dons et n'a jamais publié de pages de dons. Le logiciel lui-même ne permet aucun frais et n'offre aucun service payant. Veuillez être vigilant et vous méfier de toute arnaque ou information trompeuse prétendant percevoir des frais au nom de ce projet.",
|
||||
|
||||
};
|
||||
|
||||
@@ -602,4 +602,13 @@ export const ja = {
|
||||
failedToDownloadVideo: "動画のダウンロードに失敗しました。もう一度お試しください。",
|
||||
failedToDownload: "ダウンロードに失敗しました。もう一度お試しください。",
|
||||
playlistDownloadStarted: "プレイリストのダウンロードが開始されました",
|
||||
deleteFailed: "削除に失敗しました",
|
||||
deleteSuccess: "削除に成功しました",
|
||||
latestComments: "最新のコメント",
|
||||
noComments: "コメントはありません。",
|
||||
copyUrl: "URLをコピー",
|
||||
new: "新規",
|
||||
disclaimerTitle: "免責事項",
|
||||
disclaimerText: "1. 目的と制限\nこのソフトウェア(コードおよびドキュメントを含む)は、個人の学習、研究、および技術交流のみを目的としています。このソフトウェアを商業目的で使用すること、または地域の法律や規制に違反する違法行為に使用することは固く禁じられています。\n\n2. 責任\n開発者は、ユーザーがこのソフトウェアをどのように使用するかについて認識しておらず、管理もしていません。このソフトウェアの違法または不適切な使用(著作権侵害を含むがこれに限定されない)から生じる法的責任、紛争、または損害は、ユーザーのみが負担するものとします。開発者は、直接的、間接的、または連帯責任を負いません。\n\n3. 修正と配布\nこのプロジェクトはオープンソースです。このコードを修正またはフォークする個人または組織は、オープンソースライセンスを遵守する必要があります。重要:第三者が元のユーザー認証/セキュリティメカニズムを回避または削除するためにコードを修正し、そのようなバージョンを配布する場合、修正者/配布者はすべての結果に対して全責任を負います。セキュリティ検証メカニズムを回避または改ざんすることを強くお勧めしません。\n\n4. 非営利声明\nこれは完全に無料のオープンソースプロジェクトです。開発者は寄付を受け付けておらず、寄付ページを公開したこともありません。ソフトウェア自体は料金を許可しておらず、有料サービスも提供していません。このプロジェクトに代わって料金を徴収すると主張する詐欺や誤解を招く情報には十分ご注意ください。",
|
||||
|
||||
};
|
||||
|
||||
@@ -593,4 +593,10 @@ export const ko = {
|
||||
failedToDownloadVideo: "동영상 다운로드에 실패했습니다. 다시 시도해 주세요.",
|
||||
failedToDownload: "다운로드에 실패했습니다. 다시 시도해 주세요.",
|
||||
playlistDownloadStarted: "재생 목록 다운로드가 시작되었습니다",
|
||||
thumbnailRefreshFailed: "썸네일 새로고침 실패",
|
||||
copyUrl: "URL 복사",
|
||||
new: "신규",
|
||||
disclaimerTitle: "면책 조항",
|
||||
disclaimerText: "1. 목적 및 제한\n이 소프트웨어(코드 및 문서 포함)는 개인적인 학습, 연구 및 기술 교류만을 목적으로 합니다. 이 소프트웨어를 상업적 목적으로 사용하거나 현지 법률 및 규정을 위반하는 불법 활동에 사용하는 것은 엄격히 금지됩니다.\n\n2. 책임\n개발자는 사용자가 이 소프트웨어를 어떻게 사용하는지 알지 못하며 통제할 수 없습니다. 이 소프트웨어의 불법적 또는 부적절한 사용(저작권 침해를 포함하되 이에 국한되지 않음)으로 인해 발생하는 모든 법적 책임, 분쟁 또는 손해는 전적으로 사용자가 부담해야 합니다. 개발자는 어떠한 직접적, 간접적 또는 공동 책임도 지지 않습니다.\n\n3. 수정 및 배포\n이 프로젝트는 오픈 소스입니다. 이 코드를 수정하거나 포크하는 개인이나 조직은 오픈 소스 라이선스를 준수해야 합니다. 중요: 제3자가 원래의 사용자 인증/보안 메커니즘을 우회하거나 제거하기 위해 코드를 수정하고 이러한 버전을 배포하는 경우, 수정자/배포자는 모든 결과에 대해 전적인 책임을 집니다. 보안 검증 메커니즘을 우회하거나 변조하는 것을 강력히 권장하지 않습니다.\n\n4. 비영리 성명\n이것은 완전히 무료인 오픈 소스 프로젝트입니다. 개발자는 기부를 받지 않으며 기부 페이지를 게시한 적이 없습니다. 소프트웨어 자체는 요금을 부과하지 않으며 유료 서비스를 제공하지 않습니다. 이 프로젝트를 대신하여 수수료를 징수한다고 주장하는 사기나 오해의 소지가 있는 정보에 주의하시기 바랍니다.",
|
||||
|
||||
};
|
||||
|
||||
@@ -605,4 +605,9 @@ export const pt = {
|
||||
failedToDownloadVideo: "Falha ao baixar o vídeo. Por favor, tente novamente.",
|
||||
failedToDownload: "Falha ao baixar. Por favor, tente novamente.",
|
||||
playlistDownloadStarted: "Download da playlist iniciado",
|
||||
copyUrl: "Copiar URL",
|
||||
new: "NOVO",
|
||||
disclaimerTitle: "Isenção de responsabilidade",
|
||||
disclaimerText: "1. Objetivo e Restrições\nEste software (incluindo código e documentação) destina-se exclusivamente a aprendizagem pessoal, pesquisa e intercâmbio técnico. É estritamente proibido usar este software para fins comerciais ou para quaisquer atividades ilegais que violem as leis e regulamentos locais.\n\n2. Responsabilidade\nO desenvolvedor desconhece e não tem controle sobre como os usuários utilizam este software. Quaisquer responsabilidades legais, disputas ou danos decorrentes do uso ilegal ou impróprio deste software (incluindo, mas não se limitando a violação de direitos autorais) serão de responsabilidade exclusiva do usuário. O desenvolvedor não assume nenhuma responsabilidade direta, indireta ou conjunta.\n\n3. Modificações e Distribuição\nEste projeto é de código aberto. Qualquer indivíduo ou organização que modifique ou faça fork deste código deve cumprir a licença de código aberto. Importante: Se um terceiro modificar o código para contornar ou remover os mecanismos originais de autenticação/segurança do usuário e distribuir tais versões, o modificador/distribuidor assume total responsabilidade por quaisquer consequências. Desaconselhamos fortemente contornar ou adulterar quaisquer mecanismos de verificação de segurança.\n\n4. Declaração Sem Fins Lucrativos\nEste é um projeto de código aberto totalmente gratuito. O desenvolvedor não aceita doações e nunca publicou páginas de doação. O software em si não permite cobranças e não oferece serviços pagos. Por favor, esteja vigilante e cuidado com quaisquer golpes ou informações enganosas que aleguem cobrar taxas em nome deste projeto.",
|
||||
|
||||
};
|
||||
|
||||
@@ -599,4 +599,10 @@ export const ru = {
|
||||
failedToDownloadVideo: "Не удалось скачать видео. Пожалуйста, попробуйте снова.",
|
||||
failedToDownload: "Не удалось скачать. Пожалуйста, попробуйте снова.",
|
||||
playlistDownloadStarted: "Скачивание плейлиста началось",
|
||||
fromYouTube: "С YouTube",
|
||||
copyUrl: "Копировать URL",
|
||||
new: "НОВЫЙ",
|
||||
disclaimerTitle: "Отказ от ответственности",
|
||||
disclaimerText: "1. Цель и Ограничения\nЭто программное обеспечение (включая код и документацию) предназначено исключительно для личного обучения, исследований и технического обмена. Строго запрещено использовать это программное обеспечение в коммерческих целях или для любой незаконной деятельности, нарушающей местные законы и правила.\n\n2. Ответственность\nРазработчик не знает и не контролирует, как пользователи используют это программное обеспечение. Любая юридическая ответственность, споры или ущерб, возникающие в результате незаконного или ненадлежащего использования этого программного обеспечения (включая, помимо прочего, нарушение авторских прав), возлагаются исключительно на пользователя. Разработчик не несет никакой прямой, косвенной или солидарной ответственности.\n\n3. Модификации и Распространение\nЭтот проект с открытым исходным кодом. Любое физическое лицо или организация, изменяющая или создающая форк этого кода, должна соблюдать лицензию с открытым исходным кодом. Важно: Если третья сторона изменяет код для обхода или удаления оригинальных механизмов аутентификации/безопасности пользователей и распространяет такие версии, модификатор/распространитель несет полную ответственность за любые последствия. Мы настоятельно не рекомендуем обходить или вмешиваться в любые механизмы проверки безопасности.\n\n4. Некоммерческое Заявление\nЭто полностью бесплатный проект с открытым исходным кодом. Разработчик не принимает пожертвования и никогда не публиковал страницы для пожертвований. Сама программа не предусматривает взимания платы и не предлагает платных услуг. Пожалуйста, будьте бдительны и остерегайтесь мошенничества или вводящей в заблуждение информации, утверждающей о сборе средств от имени этого проекта.",
|
||||
|
||||
};
|
||||
|
||||
@@ -591,4 +591,9 @@ export const zh = {
|
||||
failedToDownloadVideo: "下载视频失败。请重试。",
|
||||
failedToDownload: "下载失败。请重试。",
|
||||
playlistDownloadStarted: "播放列表下载已开始",
|
||||
copyUrl: "复制链接",
|
||||
new: "新",
|
||||
disclaimerTitle: "免责声明",
|
||||
disclaimerText:
|
||||
"1. 用途与限制\n本软件(包括代码和文档)仅供个人学习、研究和技术交流使用。严禁将本软件用于任何商业用途或违反当地法律法规的非法活动。\n\n2. 责任\n开发者不知道也无法控制用户如何使用本软件。因非法或不当使用本软件而产生的任何法律责任、争议或损害(包括但不限于侵犯版权)应由用户自行承担。开发者不承担任何直接、间接或连带责任。\n\n3. 修改和分发\n本项目是开源的。任何修改或复刻此代码的个人或组织必须遵守开源许可证。重要提示:如果第三方修改代码以绕过或移除原始用户验证/安全机制并分发此类版本,修改者/分发者将承担所有后果的全责。我们强烈不建议绕过或篡改任何安全验证机制。\n\n4. 非盈利声明\n这是一个完全免费的开源项目。开发者不接受捐赠,也从未发布过任何捐赠页面。本软件本身不收费,也不提供任何付费服务。请提高警惕,谨防任何声称代表本项目收费的诈骗或误导信息。",
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user