0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[QBCore] "Missing Phrase For Key" の解決法

Last updated at Posted at 2023-12-11

まえがき

いつもの如く自分用メモ書き
それでも誰かのお役に立てれば幸いです。

エラー文の発生状況

今回は "mechanicjob" に関連した "Missing Phrase For Key" が発生
具体的には、

[script:qb-mechanicjob] Warning: Missing phrase for key: "target.duty"

みたいな感じ
これが "target.***" のような感じに5行くらい続く

スクリーンショット 2023-12-11 160941.png

Warningであってエラーではないが、発生しないに越したことはないので修正していく

結論から言うと

言語ファイル(日本語化のため外部から導入したja.lua)が原因だった

外部から導入したqb-mechanicjob/locales/ja.luaを開き、
QBCore公式のqb-mochanicjob/locales/en.luaと比較すると…

QBCore公式の qb-mechanicjob/locales/en.lua
スクリーンショット 2023-12-11 164901.png

日本語化ファイル(一応作者の方は伏せてます) qb-mechanicjob/locales/ja.lua
スクリーンショット 2023-12-11 165312.png

ja.luaの方にはtarget.***のテーブルが存在せず、QBCore公式のファイルには存在している

それ以外も全然違うので、
このまま導入するとqb-mechanicjob関連はほぼMissing Phrase...を出すはず

これが原因なので、en.luaから該当部分をコピペで移して、同時に日本語に置き換えてみる

修正しつつ日本語化
スクリーンショット 2023-12-11 165858.png

修正が終わったら保存し、qb-mechanicjob リソースをRestartしてみる
スクリーンショット 2023-12-11 170213.png

target.**は左Altキーでアクセスできる箇所のローカライズに関する部分なので、
このようにちゃんとショップにアクセスできて、エラーログが出てないなら修正完了

解説してみる

トラシューだけで終わっても味がないので、一通りの流れを解説
ただし、そこまで詳しいわけではないため間違っていたら修正コメントお願いします

バグトラシューには関係がないのでここから先はスルーしてもOK

どの処理部からこのWarningが出たか?

target.**qb-mechanicjob/client/main.luaの114行目~224行目が呼び出しを行っている

exports['qb-target']:AddCircleZone(k .. '_duty', v.duty, 0.5, {
            name = k .. '_duty',
            debugPoly = false,
            useZ = true
        }, {
            options = { {
                type = 'server',
                event = 'QBCore:ToggleDuty',
                label = Lang:t('target.duty'),
                icon = 'fas fa-user-clock',
                job = v.managed and k or nil
            } },
            distance = 2.0
        })

このコードはqb-targetモジュールを使用してアクセスできるゾーン
(debugPolyをtrueにすると緑色の円形のゾーンが見えるが、それ自体)の生成を行っている部分

本当にこれが呼び出し元か実験してみる

ここのoptionsテーブルのlabel = Lang:t('target.duty')
適当にlabel = Lang:t('target.aaaa')に変えてみる

正常系
スクリーンショット 2023-12-11 172515.png

変えてみた
スクリーンショット 2023-12-11 171002.png

スクリーンショット 2023-12-11 170906.png

以上

引用

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?