ページ 11

【解決済み】用語プラグインの日本語対応

Posted: 2016年11月15日(火) 22:00
by ハルミヤ
海外サイトから実に素晴らしい用語プラグインを見つけたのですが、
なぜか半角の英数字しか表示されません。
このプラグインはテキストファイル自体を用語としてゲーム内で表示してくれるものです。
テキストファイルの名前は用語の名前として、
ファイルの中身はその用語の説明文として辞書に登録されるという仕組みです。
そこで日本語で入力したところファイル名は日本語として表示されるのに対し、
説明文は表示されなかったです(テキストファイルはutf-8で保存しました)。
いろいろ試して、半角英数字なら表示されること、
半角英数字の次の一文字までなら日本語でも表示されることが判明しました。
このプラグインに似た仕組みの日本語でも扱えるものを探しております。
手助けお願いいたします。

※使っている用語プラグインです
http://forums.rpgmakerweb.com/index.php ... ersion101/

Re: 用語プラグインの日本語対応

Posted: 2016年11月15日(火) 23:05
by トリアコンタン
こんばんは!

当該プラグインは日本語の文章表示を考慮していないようです。
Rem_Dictionary.jsの254~279行目を以下の例のようにコメントアウトしてください。

コード: 全て選択

/*
      processNormalCharacter(textState) {
        let num = textState.index++;
        let char = textState.text[num];
        let length = textState.text.length;
        let charWidth = this.textWidth(char);

        if(/\w/ig.test(char)) {
          this.updateWordArray(char, textState);
        }

        if( (/\s/ig.test(char) || /[\W]/ig.test(char) || (length === (num + 1))) && this.currentWord.length > 0) {
          let word = this.createWord(this.currentWord);
          let firstLetter = this.currentWord[0];
          let wordWidth = this.textWidth(word);

          if(firstLetter.x + wordWidth > this.contentsWidth()){
            this.updateTextStateAndShiftAmount(firstLetter, wordWidth, textState);
          }

          word = (!/[\W]/ig.test(char) && (length === (num + 1))) ? word : word+char;
          this.contents.drawText(word, firstLetter.x, firstLetter.y,  wordWidth * 2, firstLetter.align);
          this.currentWord.length = 0;
        }

        textState.x += charWidth;
      }
*/

Re: 用語プラグインの日本語対応

Posted: 2016年11月26日(土) 20:31
by ハルミヤ
返信遅れてすみません。
それと、お早い回答ありがとうございます。
これからも、いろいろとお世話になると思いますがよろしくお願いします。