簡易テキスト管理


何年もの間、私はspasでテキストを管理するために多くの異なるアプリケーションと異なるアプローチを見ました.初めに、最も使用されたメソッドはJSまたはHTMLでちょうどハードコード化されたストリングでした.変数が使用されるファイルの一番上の定数の定義constants/resources ファイル名component/feature 使用するための定数のフォルダとインポート、および私が最も好きなものはlocale フォルダen-us.js 内部には、アプリケーションで使用されるすべてのテキスト文字列が含まれます.
それで、このポストでは、私の見解から、それが多くの利益を持っているので、私は最後の方法に集中するつもりです.
  • つだけインポート、各使用文字列をインポートすることを忘れて
  • あなたが定義するすべてのテキスト文字列は、アプリケーションの周りに再利用することができます
    IDEのほとんどはインデックスを持っているので、変数をクリックするだけで直接定義を得ることができます
  • あなたはすべて同じ場所にある
  • 維持しやすい
  • 簡単に任意の言語にアプリを翻訳する
  • 混乱は定数の定義に来るかもしれないので、それについて話しましょう.
    我々のen esの内容.JSは単純な露出オブジェクトです.
    export const locale = {awesome: 'Awesome'};
    

    Good name for the thing will save much time in the future.


    人々はネーミングを簡単なものとみなしている.ただ、あなたの心に来る最初のアイデアを書くので、命名規約がない場合でも、そこには、簡単に取得し、1つの日を気にするだけの名前の新しい創造を発明します.なので、命名はたぶんこの記事で一番難しいことです.
    何度も私はファイルを作成しました、そして、私のために、それはネーミングを明らかにしました、しかし、他のもののためにでなく、ファイルがより大きくなるとき、そして、あなたが前に一度も持っていなかった若干の厄介なケースを持っているとき、より多くであるので、その時点で、あなたはちょうど配送を急いでいる必要があるので、何かを決めます.モンスターの創造の種を植えた!バアード!悪い!いつかあなたはそれを修正しますが、その日が来ることを願っています.この時点で、私の提案は急いで、少なくとも最も使用されるケースをチェックすることです.
    それで、チェックしましょう.私は想像したすべてのケースをカバーしようとしたが、おそらく途中で、あなたはいくつかを見つけるでしょう.
    const locale = {
    WhateverXX = 'Whatever %0', //XX is the indication that this string has a parameter (you will need a method to replace it)
    WhateverXXandXX = 'Whatever %0 and %1', //same case with more parameters
    SuperLongStringTextXX = 'Super long long long %0 very long string', //another example
    WhateverYouDoUserUnderscoreNameColonXX: 'Whatever you do user_name: XX', // "Underscore" and "Colon" inside the name, for some specific cases you can use it, but I wouldn't do it in long text, so it is a matter of common sense
    UserName = 'User name', //for simple text
    UserNameLC = 'user name', //LC an indication that the whole string is in lower case
    //UserNameLowercase = 'user name', //another way to do the same
    UserNameCC = 'User Name', //CC - whole string in camel case
    UserNameUC = 'USER NAME', //UC - whole string in upper case
    UserNameColon = 'User name:', //Colon an indication of colon at the end, common usage in forms
    UserNameCCColon = 'User Name:', // or you can use UserName and in the use add ":"
    AboutUsText1 = 'Cool very long paragraph about us', // you can use descriptive name for some long texts
    AboutUsText2 = 'Another awesome paragraph about us', // another example
    IfyouHaveASuperLongTextIDontKnowWhatIsTheProblemOnUseItInThisWay = '...', //its not a bad idea to use long text, but its quite ugly and is too descriptive, so if you change it, then you will have to replace all the usages in the app and it is painful. I suggest you to use the definition above, its easier to maintain.
    };
    
    たった今、私は我々がいたプロジェクトに取り組んでいますstrings ほとんどすべてのコンポーネントのフォルダとアプリケーションのハードコード化された文字列の束で定義されたファイル.それで、我々は数ヵ月前移行を始めました、そして、たった今、我々はすでに持ちました1k+ 文字列はアルファベット順に並べられます.
    これは基本的にすべて、あなたが何か役に立つことを願っています.コメントは歓迎です.