JavaScript ファイルからの翻訳用の文字列エクストラクタを作成しました。開始点として使用した jsgettext プロジェクトを見つけました (を参照)。
正規表現を使用して、__()
javascript ファイル内のメソッドへの呼び出しを検索します。単純な呼び出しは正常に検出されますが、次のような引数を持つ呼び出しは検出され__('string', { a: 'b'})
ません。
正規表現を変更して、メソッド呼び出しにも引数を一致させようとしましたが、成功しませんでした (私は正規表現の専門家ではありません)。
私の質問は次のとおりです。このような文字列に一致するように次の正規表現を変更する方法は?
// this is catched successfully
// var string = __("Please enter %number% more characters.");
// this is problematic
var string = __("Please enter %number% more characters.", { '%number%' : 2 });
正規表現:
$keywords = join('|', array('__'));
preg_match_all('# (?:' . $keywords . ') \(\\ *" ( (?: (?>[^"\\\\]++) | \\\\\\\\ | (?<!\\\\)\\\\(?!\\\\) | \\\\" )* ) (?<!\\\\)"\\ *\) #ix', $content, $matches, PREG_SET_ORDER);
ありがとうございました