# libre\_translate.rb 플러그인 Discourse Translator에서 'target\_locale' 변수가 정의되지 않음

**URL:** https://meta.discourse.org/t/undefined-variable-target-locale-in-libre-translate-rb-plugin-discourse-translator/355481
**Category:** Bug
**Tags:** translator
**Created:** [3월 3, 2025, 4:34오후 UTC](https://meta.discourse.org/t/undefined-variable-target-locale-in-libre-translate-rb-plugin-discourse-translator/355481 "2025-03-03T16:34:17Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![dorina](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dorina/32/490279_2.png) [@dorina](https://meta.discourse.org/u/dorina)
#### Post date: [3월 3, 2025, 4:34오후 UTC](https://meta.discourse.org/t/undefined-variable-target-locale-in-libre-translate-rb-plugin-discourse-translator/355481/1 "2025-03-03T16:34:17Z")

</div>

Discourse Translator를 설치하고 자체 호스팅한 LibreTranslate 인스턴스와 함께 사용하려고 했습니다. 작동하지 않았고 다음과 같은 백트레이스가 나타났습니다:

```plaintext
NameError (undefined local variable or method `target_locale' for class DiscourseTranslator::LibreTranslate)
app/controllers/application_controller.rb:427:in `block in with_resolved_locale'
app/controllers/application_controller.rb:427:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:409:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/processing_request.rb:12:in `call'
lib/middleware/request_tracker.rb:385:in `call'

Backtrace

plugins/discourse-translator/app/services/discourse_translator/libre_translate.rb:107:in `block in translate!'
plugins/discourse-translator/app/services/discourse_translator/base.rb:82:in `save_translation'
plugins/discourse-translator/app/services/discourse_translator/libre_translate.rb:101:in `translate!'
plugins/discourse-translator/app/services/discourse_translator/base.rb:51:in `translate'
plugins/discourse-translator/app/controllers/discourse_translator/translator_controller.rb:44:in `translate'
actionpack (7.2.2.1) lib/action_controller/metal/basic_implicit_render.rb:8:in `send_action'
actionpack (7.2.2.1) lib/abstract_controller/base.rb:226:in `process_action'
actionpack (7.2.2.1) lib/action_controller/metal/rendering.rb:193:in `process_action'
actionpack (7.2.2.1) lib/abstract_controller/callbacks.rb:261:in `block in process_action'
activesupport (7.2.2.1) lib/active_support/callbacks.rb:121:in `block in run_callbacks'
app/controllers/application_controller.rb:427:in `block in with_resolved_locale'
i18n (1.14.7) lib/i18n.rb:353:in `with_locale'

```

코드를 확인해 보니:

```plaintext
    def self.translate!(translatable, target_locale_sym = I18n.locale)
      detected_lang = detect(translatable)

      save_translation(translatable, target_locale_sym) do
        res =
          result(
            translate_uri,
            q: text_for_translation(translatable),
            source: detected_lang,
            target: SUPPORTED_LANG_MAPPING[target_locale],
            format: "html",
          )
        res["translatedText"]
      end
    end

```

특히 107번째 줄인 다음 코드입니다:

```plaintext
target: SUPPORTED_LANG_MAPPING[target_locale]

```

→ ‘target\_locale’ 대신 'target\_locale\_sym’이어야 하는 것 같습니다. 제가 잘못 본 건가요?

수동으로 \*\*target: SUPPORTED\_LANG\_MAPPING[target\_locale\_sym],\*\*로 변경하고 저장한 뒤 앱을 재시작했는데 정상적으로 작동했습니다.

---

<div class="post-metadata">

### Author: ![nat](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nat/32/235063_2.png) [@nat](https://meta.discourse.org/u/nat)
#### Post date: [3월 3, 2025, 4:41오후 UTC](https://meta.discourse.org/t/undefined-variable-target-locale-in-libre-translate-rb-plugin-discourse-translator/355481/2 "2025-03-03T16:41:30Z")

</div>

안녕하세요, 보고해 주셔서 감사합니다. 이 문제에 대한 버그 수정을 우선 처리하겠습니다.

---

<div class="post-metadata">

### Author: ![nat](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nat/32/235063_2.png) [@nat](https://meta.discourse.org/u/nat)
#### Post date: [3월 4, 2025, 4:51오전 UTC](https://meta.discourse.org/t/undefined-variable-target-locale-in-libre-translate-rb-plugin-discourse-translator/355481/4 "2025-03-04T04:51:00Z")

</div>

@dorina, 이 문제는 [FIX: Incorrect lang mapping using non-symbols for LibreTranslate - Pull Request #238 - discourse/discourse-translator - GitHub](https://github.com/discourse/discourse-translator/pull/238) 에서 수정되었습니다. 이 수정 사항을 적용하기 위해 플러그인을 업데이트할 수 있습니다.

---

<div class="post-metadata">

### Author: ![nat](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nat/32/235063_2.png) [@nat](https://meta.discourse.org/u/nat)
#### Post date: [3월 6, 2025, 4:51오전 UTC](https://meta.discourse.org/t/undefined-variable-target-locale-in-libre-translate-rb-plugin-discourse-translator/355481/5 "2025-03-06T04:51:36Z")

</div>

이 주제는 2일 후 자동으로 닫혔습니다. 더 이상 새 답변을 작성할 수 없습니다.
