Select Enable API and search for Google Cloud Translator API. Look for the enable button and click it to enable the API. Note that there is no free tier for the Google Translator API so it may prompt you to enable billing.
Once you’re done, click on credentials in the left menu
أنا أستخدم LibreTranslate المستضاف ذاتيًا والذي عمل بشكل جيد في الماضي، ولكني الآن أتلقى الكثير من أخطاء “Job exception: The translator service is currently not available” المتكررة. لقد تحققت من عنوان URL الذي كان يعمل بشكل جيد في الماضي. إذا قمت بالوصول إلى عنوان URL، فستعرض صفحة الويب LibreTranslate. لا توجد حاجة لواجهة برمجة التطبيقات/رمز مميز لأن مثيل LibreTranslate الخاص بي خاص ولا يمكن الوصول إليه من الإنترنت.
تُظهر تتبع المكدس:
Message (548 copies reported)
Job exception: The translator service is currently not available.
Backtrace
/var/www/discourse/plugins/discourse-translator/services/discourse_translator/libretranslate.rb:168:in `result'
/var/www/discourse/plugins/discourse-translator/services/discourse_translator/libretranslate.rb:85:in `detect'
/var/www/discourse/plugins/discourse-translator/plugin.rb:120:in `block in execute'
/var/www/discourse/lib/distributed_mutex.rb:53:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:34:in `synchronize'
/var/www/discourse/plugins/discourse-translator/plugin.rb:119:in `execute'
/var/www/discourse/app/jobs/base.rb:305:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.0.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.0.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:292:in `block in perform'
/var/www/discourse/app/jobs/base.rb:288:in `each'
/var/www/discourse/app/jobs/base.rb:288:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:202:in `execute_job'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:132:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:182:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:169:in `block in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:113:in `local'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:263:in `stats'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:13:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:80:in `global'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:124:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:39:in `prepare'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:123:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:168:in `process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:78:in `process_one'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:68:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:8:in `watchdog'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:17:in `block in safe_thread'
خيار اللغة ‘الهندية’ غير متاح في ‘Discourse’ بعد. ولكن الترجمة ‘الهندية’ متاحة عبر خدمات مختلفة (أنا أستخدم ‘Microsoft Azure’).
إذًا، كيف يمكننا الإعداد لترجمة جميع المشاركات غير الهندية / أي مشاركات غير هندية إلى ‘الهندية’ حتى عندما تستمر واجهة Discourse باللغة الإنجليزية؟ هل هذا ممكن حتى؟
كنت أفكر في إضافة هذا المترجم إلى منتدانا. ومع ذلك، لدي شاغلان رئيسيان:
1. هل من الممكن تغيير الترجمات؟
أريد التأكد من ترجمة مصطلحات معينة بطريقة محددة. لهذا، أحتاج إلى القدرة على عرض الترجمات المتاحة وإجراء التغييرات إذا لزم الأمر.
2. متى سيتم “إعادة ترجمة” المنشور؟
يتم تحرير بعض منشورات المنتدى بشكل متكرر. كيف يمكنني التأكد من أن كل خطأ إملائي مصحح لا يؤدي إلى تكاليف ترجمة باهظة؟ بالإضافة إلى ذلك، كيف يمكنني التأكد من تحديث التغييرات الجديدة بدقة في الترجمات؟
أعتقد أن هذا قد لا يكون ممكنًا، حيث سيتعين عليك التعديل على مستوى البائع (Microsoft/Google). إلا إذا كان المحتوى المترجم يخضع لميزة استبدال الكلمات، فيمكنك استخدامها.
إليك طلب ميزة:
ترجمة المنشور الأول تلقائيًا إلى الإنجليزية في حال كان مكتوبًا بلغة مختلفة.
وجود زر لترجمة الموضوع بأكمله دفعة واحدة.
تمكين ميزة الترجمة التلقائية للمنتدى بأكمله على مستوى المستخدم. بمعنى، إذا اختار المستخدم في ملفه الشخصي أنه يتحدث الرومانية فقط، على سبيل المثال، فسيتم ترجمة جميع المحتويات إلى الرومانية. إذا اختار أنه يتحدث لغات متعددة، فسيتم ترجمة المنشورات فقط إذا لم تكن بهذه اللغات.
يستخدم الإشعار في لقطة الشاشة الخاصة بك العنوان الأصلي لموضوع منشورك، لذا فهو “صحيح” في الوقت الحالي. سنتأكد من ترجمة الإشعارات (عناوين الموضوع) في المستقبل.
بالنسبة للمنشور أعلاه، كانت الترجمة الآلية لدينا تواجه مشكلة وتم اكتشافها بشكل غير صحيح على أنها “إسبانية (es)”، كما حدثت ترجمة سيئة لاحقة. تم تصحيح ذلك. نحن نكرر ذلك بمطالبات أفضل للترجمات.
لقد تلقيت هذا الخطأ عند تثبيت إضافة discourse-translator. إصدار discourse الخاص بي هو 3.5.0.beta1.
I, [2025-04-24T01:33:20.510994 #1] INFO -- : cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
82: from /usr/local/bin/bundle:25:in `<main>'
81: from /usr/local/bin/bundle:25:in `load'
80: from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.5.18/exe/bundle:20:in `<top (required)>'
....
10: from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/lazy_load_hooks.rb:87:in `with_execution_control'
9: from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/lazy_load_hooks.rb:94:in `block in execute_hook'
8: from /var/www/discourse/config/application.rb:249:in `block in <class:Application>'
7: from /var/www/discourse/lib/plugin.rb:6:in `initialization_guard'
6: from /var/www/discourse/config/application.rb:249:in `block (2 levels) in <class:Application>'
5: from /var/www/discourse/config/application.rb:249:in `each'
4: from /var/www/discourse/lib/plugin/instance.rb:629:in `notify_after_initialize'
3: from /var/www/discourse/lib/plugin/instance.rb:629:in `each'
2: from /var/www/discourse/lib/plugin/instance.rb:631:in `block in notify_after_initialize'
1: from /var/www/discourse/plugins/discourse-translator/plugin.rb:40:in `block in activate!'
/var/www/discourse/plugins/discourse-translator/lib/discourse_translator/inline_translation.rb:86:in `inject': protected method `register_topic_preloader_associations' called for an instance of Plugin::Instance (NoMethodError)