0

この投稿のタイトルの付け方がわかりません。

それぞれがキーと値のペアの配列を含む一連の国際化ドキュメントを継承しました。方法論が理想的ではないことは認識していますが、自分の役割、利用できる時間とリソースを考えると、私が立ち往生しているものです. これらのリストは手作業で作成されており、需要に対応するためにアイテムが常に無計画に追加されていました。以下の例は簡略化されています。約 21 の言語ファイルがあり、それぞれに 100 以上のエントリがあります。

1 つのファイルの配列には、次のような要素が含まれます。

'download_high' => 'Vysoké',
'download_low' => 'Nízké',
'download_med' => 'Strední',
'download_video' => 'Stáhnout video',

別のファイルには次のようなものがあります。

'download_video' => 'Descargar Video',
'download_high' => 'Alta',
'download_med' => 'Media',
'download_low' => 'Baja',

ほとんどの場合、要素は一貫した順序で並べられていますが、多くの例外があり、ファイルの維持が複雑になっています。IDEまたはnotepad ++プラグインなどを介して、これらの配列の順序/フォーマットを一貫させる方法があるかどうか疑問に思っていました.アルファベット順にうまく変換されない論理グループがあるため、必ずしもアルファベット順に並べたいとは思いません.一部の変数のみが名前空間化されているため、並べ替え。手動で行うのはほぼ論外ですが、順序を指定して、何らかのテキスト操作ツールでファイルをバッチ処理する方法があればいいのにと思います。私はPHPにあまり詳しくないので、非常に単純でない限り、コードを介してこれを行う価値があるかどうかはわかりません。

4

5 に答える 5

2

PHP には という関数がありますvar_export。コードを実行し、関数を使用して印刷できます。

個人的には、notepad++ で正規表現を実行して実行します。

編集:メモ帳++では、正規表現で検索/置換を行うことができます。

[検索対象] フィールドに、次のように入力します。\s*'(.+?)'\s*=>\s*'(.+?)'\s*(?:(,)|\s*$)\s*

「置換」フィールドに、'$1' => '$2'$3\n

これは次のようになります。

'download_high'         =>  'Vysoké',
    'download_low'=>                    

    'Nízké',
'download_med'
=>
'Strední'
,
    'download_video'    =>  'Stáhnout video',
'filter_by' => 'Filtrovat podle'
,




'footer_contact' => 'Kontakt'

の中へ

'download_high' => 'Vysoké',
'download_low' => 'Nízké',
'download_med' => 'Strední',
'download_video' => 'Stáhnout video',
'filter_by' => 'Filtrovat podle',
'footer_contact' => 'Kontakt'

*注: これは、すべてのキーと値が単一引用符を使用し、キーと値のいずれにも単一引用符がエスケープされていないことを前提として書かれています。

于 2012-11-20T21:36:00.467 に答える
1

状況を考えると、必要に応じて半自動で行います。つまり、あなたはこれらのファイルの保守を任されているように思えますが、並べ替えが問題になるのは保守です。

次のようにフォーマットされた各言語ファイルの場合:

<?php
$something = array(
  'download_video' => 'Descargar Video',
  'download_high' => 'Alta',
  ...
  'download_med' => 'Media',
  'download_low' => 'Baja',
);
  1. sort lang.es.phpコマンドをbashで発行するか、何かをソートしたい方法で発行します。
  2. ファイルを編集用に開きます。
  3. 配列宣言を削除します。
  4. #1 からソートされた行をコピーして貼り付けます。

正直なところ、あなたの前任者がこのようなことを効果的にハードコードすることは、非常に悪い考えでした. これがCSV、XML、pg/mySQLなどを介して保存され、少なくともデータ形式を理解するエディターを呼び出すことができれば、はるかに良いでしょう.

于 2012-11-20T23:43:39.800 に答える
0

既にデータを PHP 配列に取り込んでいるという理解でよろしいですか? この時点で、これを行うだけでキーをソートできます。これにより、順序が一貫したものになります。

ksort($array);
于 2012-11-20T21:38:00.493 に答える
0

リストが増え続ける場合は、配列やphpファイルなどを使用することはお勧めしません。数分かけて mysql をセットアップし、必要なパラメーターを使用してデータベースからプルします。きちんと、速く、効率的で、スケーラブル。

于 2012-11-20T21:35:12.280 に答える
0

私の提案は、これらすべての配列をより簡単に維持できるデータベースにロードするスクリプトを作成することです。もちろん、データベース テーブル/フィールドが UTF-8 文字セットと照合用に設定されていることを確認する必要があります。

于 2012-11-20T21:36:01.360 に答える