まえがき
いつもの如く自分用メモ書き
それでも誰かのお役に立てれば幸いです。
エラー文の発生状況
今回は "mechanicjob" に関連した "Missing Phrase For Key"
が発生
具体的には、
[script:qb-mechanicjob] Warning: Missing phrase for key: "target.duty"
みたいな感じ
これが "target.***"
のような感じに5行くらい続く
Warning
であってエラーではないが、発生しないに越したことはないので修正していく
結論から言うと
言語ファイル(日本語化のため外部から導入したja.lua
)が原因だった
外部から導入したqb-mechanicjob/locales/ja.lua
を開き、
QBCore公式のqb-mochanicjob/locales/en.lua
と比較すると…
QBCore公式の qb-mechanicjob/locales/en.lua
日本語化ファイル(一応作者の方は伏せてます) qb-mechanicjob/locales/ja.lua
ja.lua
の方にはtarget.***
のテーブルが存在せず、QBCore公式のファイルには存在している
それ以外も全然違うので、
このまま導入するとqb-mechanicjob
関連はほぼMissing Phrase...
を出すはず
これが原因なので、en.lua
から該当部分をコピペで移して、同時に日本語に置き換えてみる
修正が終わったら保存し、qb-mechanicjob
リソースをRestartしてみる
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')
に変えてみる
以上
引用
- 公式github(qb-mechanicjob)
QBCore - qb-mechanicjob