summaryrefslogtreecommitdiffstats
path: root/vendor/ezyang/htmlpurifier/docs/proposal-language.txt
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-11-07 12:32:05 +0100
committerBernhard Posselt <dev@bernhard-posselt.com>2014-11-07 12:32:05 +0100
commit7f81afd7efbeb931d16ce1f3a1ed53a54226d553 (patch)
tree180720cd96aa66ae8964f13734e090d4b82a178e /vendor/ezyang/htmlpurifier/docs/proposal-language.txt
parenta6d6288e65aa416aca7535e81d9e8837c2cfb103 (diff)
move 3rdparty directory to vendor to be more consistent with composer standard and because we also use js/vendor for third party libs
Diffstat (limited to 'vendor/ezyang/htmlpurifier/docs/proposal-language.txt')
-rw-r--r--vendor/ezyang/htmlpurifier/docs/proposal-language.txt64
1 files changed, 64 insertions, 0 deletions
diff --git a/vendor/ezyang/htmlpurifier/docs/proposal-language.txt b/vendor/ezyang/htmlpurifier/docs/proposal-language.txt
new file mode 100644
index 000000000..149701cd3
--- /dev/null
+++ b/vendor/ezyang/htmlpurifier/docs/proposal-language.txt
@@ -0,0 +1,64 @@
+We are going to model our I18N/L10N off of MediaWiki's system. Their's is
+obviously quite complicated, so we're going to simplify it a bit for our needs.
+
+== Caching ==
+
+MediaWiki has lots of caching mechanisms built in, which make the code somewhat
+more difficult to understand. Before doing any loading, MediaWiki will check
+the following places to see if we can be lazy:
+
+1. $mLocalisationCache[$code] - just a variable where it may have been stashed
+2. serialized/$code.ser - compiled serialized language file
+3. Memcached version of file (with expiration checking)
+
+Expiration checking consists of by ensuring all dependencies have filemtime
+that match the ones bundled with the cached copy. Similar checking could be
+implemented for serialized versions, as it seems that they are not updated
+until manually recompiled.
+
+== Behavior ==
+
+Things that are localizable:
+
+- Weekdays (and abbrev)
+- Months (and abbrev)
+- Bookstores
+- Skin names
+- Date preferences / Custom date format
+- Default date format
+- Default user option overrides
+-+ Language names
+- Timezones
+-+ Character encoding conversion via iconv
+- UpperLowerCase first (needs casemaps for some)
+- UpperLowerCase
+- Uppercase words
+- Uppercase word breaks
+- Case folding
+- Strip punctuation for MySQL search
+- Get first character
+-+ Alternate encoding
+-+ Recoding for edit (and then recode input)
+-+ RTL
+-+ Direction mark character depending on RTL
+-? Arrow depending on RTL
+- Languages where italics cannot be used
+-+ Number formatting (commafy, transform digits, transform separators)
+- Truncate (multibyte)
+- Grammar conversions for inflected languages
+- Plural transformations
+- Formatting expiry times
+- Segmenting for diffs (Chinese)
+- Convert to variants of language
+- Language specific user preference options
+- Link trails [[foo]]bar
+-+ Language code (RFC 3066)
+
+Neat functionality:
+
+- I18N sprintfDate
+- Roman numeral formatting
+
+Items marked with a + likely need to be addressed by HTML Purifier
+
+ vim: et sw=4 sts=4