簡易テキスト管理
5999 ワード
何年もの間、私はspasでテキストを管理するために多くの異なるアプリケーションと異なるアプローチを見ました.初めに、最も使用されたメソッドはJSまたはHTMLでちょうどハードコード化されたストリングでした.変数が使用されるファイルの一番上の定数の定義
それで、このポストでは、私の見解から、それが多くの利益を持っているので、私は最後の方法に集中するつもりです. つだけインポート、各使用文字列をインポートすることを忘れて あなたが定義するすべてのテキスト文字列は、アプリケーションの周りに再利用することができます
IDEのほとんどはインデックスを持っているので、変数をクリックするだけで直接定義を得ることができます あなたはすべて同じ場所にある 維持しやすい 簡単に任意の言語にアプリを翻訳する 混乱は定数の定義に来るかもしれないので、それについて話しましょう.
我々のen esの内容.JSは単純な露出オブジェクトです.
人々はネーミングを簡単なものとみなしている.ただ、あなたの心に来る最初のアイデアを書くので、命名規約がない場合でも、そこには、簡単に取得し、1つの日を気にするだけの名前の新しい創造を発明します.なので、命名はたぶんこの記事で一番難しいことです.
何度も私はファイルを作成しました、そして、私のために、それはネーミングを明らかにしました、しかし、他のもののためにでなく、ファイルがより大きくなるとき、そして、あなたが前に一度も持っていなかった若干の厄介なケースを持っているとき、より多くであるので、その時点で、あなたはちょうど配送を急いでいる必要があるので、何かを決めます.モンスターの創造の種を植えた!バアード!悪い!いつかあなたはそれを修正しますが、その日が来ることを願っています.この時点で、私の提案は急いで、少なくとも最も使用されるケースをチェックすることです.
それで、チェックしましょう.私は想像したすべてのケースをカバーしようとしたが、おそらく途中で、あなたはいくつかを見つけるでしょう.
これは基本的にすべて、あなたが何か役に立つことを願っています.コメントは歓迎です.
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+
文字列はアルファベット順に並べられます.これは基本的にすべて、あなたが何か役に立つことを願っています.コメントは歓迎です.
Reference
この問題について(簡易テキスト管理), 我々は、より多くの情報をここで見つけました https://dev.to/ozaytsev86/easy-text-strings-management-in-spas-406iテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol