mirror of
https://github.com/discourse/discourse-ai.git
synced 2025-07-02 04:22:40 +00:00
Related: https://github.com/discourse/discourse-translator/pull/310 This commit includes all the jobs and event hooks to localize posts, topics, and categories. A few notes: - `feature_name: "translation"` because the site setting is `ai-translation` and module is `Translation` - we will switch to proper ai-feature in the near future, and can consider using the persona_user as `localization.localizer_user_id` - keeping things flat within the module for now as we will be moving to ai-feature soon and have to rearrange - Settings renamed/introduced are: - ai_translation_backfill_rate (0) - ai_translation_backfill_limit_to_public_content (true) - ai_translation_backfill_max_age_days (5) - ai_translation_verbose_logs (false)
48 lines
2.3 KiB
Ruby
48 lines
2.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module DiscourseAi
|
|
module Translation
|
|
class TopicTitleTranslator < BaseTranslator
|
|
PROMPT_TEMPLATE = <<~TEXT.freeze
|
|
You are a translation service specializing in translating forum post titles from English to the asked target_language. Your task is to provide accurate and contextually appropriate translations while adhering to the following guidelines:
|
|
|
|
1. Translate the given title from English to target_language asked.
|
|
2. Keep proper nouns and technical terms in their original language.
|
|
3. Attempt to keep the translated title length close to the original when possible.
|
|
4. Ensure the translation maintains the original meaning and tone.
|
|
|
|
To complete this task:
|
|
|
|
1. Read and understand the title carefully.
|
|
2. Identify any proper nouns or technical terms that should remain untranslated.
|
|
3. Translate the remaining words and phrases into the target_language, ensuring the meaning is preserved.
|
|
4. Adjust the translation if necessary to keep the length similar to the original title.
|
|
5. Review your translation for accuracy and naturalness in the target_language.
|
|
|
|
Provide your translation in the following JSON format:
|
|
|
|
<output>
|
|
{"translation": "Your target_language translation here"}
|
|
</output>
|
|
|
|
Here are three examples of correct translation
|
|
|
|
Original: {"title":"New Update for Minecraft Adds Underwater Temples", "target_language":"Spanish"}
|
|
Correct translation: {"translation": "Nueva actualización para Minecraft añade templos submarinos"}
|
|
|
|
Original: {"title":"Toyota announces revolutionary battery technology", "target_language":"French"}
|
|
Correct translation: {"translation": "Toyota annonce une technologie de batteries révolutionnaire"}
|
|
|
|
Original: {"title": "Heathrow fechado: paralisação de voos deve continuar nos próximos dias, diz gestora do aeroporto de Londres", "target_language": "English"}
|
|
Correct translation: {"translation": "Heathrow closed: flight disruption expected to continue in coming days, says London airport management"}
|
|
|
|
Remember to keep proper nouns like "Minecraft" and "Toyota" in their original form. Translate the title now and provide your answer in the specified JSON format.
|
|
TEXT
|
|
|
|
private def prompt_template
|
|
PROMPT_TEMPLATE
|
|
end
|
|
end
|
|
end
|
|
end
|