JaroslavTulach: /* Localizing Output */ - 2015-05-31 07:46:07

Localizing Output

←Older revision Revision as of 07:46, 31 May 2015
Line 19: Line 19:
at the beginning of your script, but people often forget. Until one runs in a different locale (and many programmers do not), one does not notice the problem.
at the beginning of your script, but people often forget. Until one runs in a different locale (and many programmers do not), one does not notice the problem.
-
This is what one gets when mixing user interface for humans (e.g. the output of '''ls''' in its [[L10N|localized]] form) with [[API|application programming interface]] which needs to be as stable as possible! [[L10N|Localizing]] [[API]] is general bad idea!
+
This is what one gets when mixing user interface for humans (e.g. the output of '''ls''' in its [[L10N|localized]] form) with [[API|application programming interface]] which needs to be as stable as possible!
 +
 
 +
[[L10N|Localizing]] [[API]] in general seems like a bad idea!
[[Category:APITypes]]
[[Category:APITypes]]
[[Category:APIDesignPatterns:Anti]]
[[Category:APIDesignPatterns:Anti]]

JaroslavTulach: /* Localizing Output */ - 2015-05-31 07:45:02

Localizing Output

←Older revision Revision as of 07:45, 31 May 2015
Line 9: Line 9:
== Localizing Output ==
== Localizing Output ==
-
On the other hand, [[L10N|localizing]] an [[API]] is probably not [[good]] idea. Classical example is output of various [[Unix]] commands like '''ls''', '''find''' (yes, format of textual output is also an [[API]]). It is often used in '''bash''' scripts in a classical pipe/grep chaining style.
+
On the other hand, [[L10N|localizing]] an [[API]] is probably not [[good]] idea. Classical example is output of various [[Unix]] commands like '''ls''', '''find''' (yes, format of textual output is also an [[API]]). It is often used in '''bash''' scripts in a classical [[wikipedia:Pipeline_(Unix)|pipe]]/[[wikipedia:Grep|grep]] chaining style.
You wouldn't believe how many '''bash''' scripts get broken when running in non-English locale! Because if the '''grep''' invocation seeks for particular format of date, it is going to be different in different locale and then everything gets broken. Of course, the fix is simple:
You wouldn't believe how many '''bash''' scripts get broken when running in non-English locale! Because if the '''grep''' invocation seeks for particular format of date, it is going to be different in different locale and then everything gets broken. Of course, the fix is simple:

JaroslavTulach: /* Localization Team */ - 2015-05-31 07:42:31

Localization Team

←Older revision Revision as of 07:42, 31 May 2015
Line 3: Line 3:
== Localization Team ==
== Localization Team ==
-
The team developing [[NetBeans]] realized that while [[I18N]] is responsibility of developers, the actual [[L10N]] (e.g. localization) is a task for completely different group. The ''localizators''. The communication between these two groups fulfills all aspects of an [[API]]: most of the [[I18N]] work in [[Java]] is done through [[PropertyFiles]] and we already know that such files are example of an [[APITypes|API type]]. Moreover the [[L10N]] is done on a different schedule. The code developers first prepare the code for [[I18N]] and only later the ''localizers'' jump on to it to do the [[L10N]] - e.g. a sign of [[distributed development]] - which is one of the major reasons why people invest in an [[API]]. Of course the fault tolerance is usually higher in case of [[PropertyFiles]] - if translated property is missing, one falls back to default (English in case of [[NetBeans]]) version - the outcome is ugly, but nothing gets broken or corrupted.
+
The team developing [[NetBeans]] realized that while [[I18N]] is responsibility of developers, the actual [[L10N]] (e.g. localization) is a task for completely different group. The ''localizators''. The communication between these two groups fulfills all aspects of an [[API]]: most of the [[I18N]] work in [[Java]] is done through [[PropertyFiles]] and we already know that such files are example of an [[APITypes|API type]]. Moreover the [[L10N]] is done on a different schedule. Developers first prepare the code for [[I18N]] and only later the ''localizers'' jump on to it to do the [[L10N]] - e.g. a sign of [[distributed development]] - which is one of the major reasons why people invest in an [[API]]. Of course the fault tolerance is usually higher in case of [[PropertyFiles]] - if translated property is missing, one falls back to default (English in case of [[NetBeans]]) version - the outcome is ugly, but nothing gets broken or corrupted.
Still it is clear that [[I18N]] is a [[APITypes|kind of API]].
Still it is clear that [[I18N]] is a [[APITypes|kind of API]].

JaroslavTulach: /* Localization Team */ - 2015-05-31 07:42:04

Localization Team

←Older revision Revision as of 07:42, 31 May 2015
Line 3: Line 3:
== Localization Team ==
== Localization Team ==
-
The team developing [[NetBeans]] realized that while [[I18N]] is responsibility of developers, the actual [[L10N]] (e.g. localization) is a task for completely different group. The ''localizators''. The communication between these two groups fulfills all aspects of an [[API]]: most of the [[I18N]] work in [[Java]] is done through [[PropertyFiles]] and we already know that such files for one [[APITypes|API type]]. Moreover the [[L10N]] is done on a different schedule. The code developers first prepare the code for [[I18N]] and only later the ''localizers'' jump on to it to do the [[L10N]] - e.g. a sign of [[distributed development]] - which is one of the major reasons why people invest in an [[API]]. Of course the fault tolerance is usually higher in case of [[PropertyFiles]] - if translated property is missing, one falls back to default (English in case of [[NetBeans]]) version - the outcome is ugly, but nothing gets broken or corrupted.
+
The team developing [[NetBeans]] realized that while [[I18N]] is responsibility of developers, the actual [[L10N]] (e.g. localization) is a task for completely different group. The ''localizators''. The communication between these two groups fulfills all aspects of an [[API]]: most of the [[I18N]] work in [[Java]] is done through [[PropertyFiles]] and we already know that such files are example of an [[APITypes|API type]]. Moreover the [[L10N]] is done on a different schedule. The code developers first prepare the code for [[I18N]] and only later the ''localizers'' jump on to it to do the [[L10N]] - e.g. a sign of [[distributed development]] - which is one of the major reasons why people invest in an [[API]]. Of course the fault tolerance is usually higher in case of [[PropertyFiles]] - if translated property is missing, one falls back to default (English in case of [[NetBeans]]) version - the outcome is ugly, but nothing gets broken or corrupted.
Still it is clear that [[I18N]] is a [[APITypes|kind of API]].
Still it is clear that [[I18N]] is a [[APITypes|kind of API]].

JaroslavTulach: /* Localizing Output */ - 2015-05-31 07:41:07

Localizing Output

←Older revision Revision as of 07:41, 31 May 2015
Line 9: Line 9:
== Localizing Output ==
== Localizing Output ==
-
On the other hand, [[L10N|localizing]] an [[API]] is probably not [[good]] idea. [[TBD]].
+
On the other hand, [[L10N|localizing]] an [[API]] is probably not [[good]] idea. Classical example is output of various [[Unix]] commands like '''ls''', '''find''' (yes, format of textual output is also an [[API]]). It is often used in '''bash''' scripts in a classical pipe/grep chaining style.
 +
 
 +
You wouldn't believe how many '''bash''' scripts get broken when running in non-English locale! Because if the '''grep''' invocation seeks for particular format of date, it is going to be different in different locale and then everything gets broken. Of course, the fix is simple:
 +
 
 +
<source lang="bash">
 +
LANG=en_US
 +
</source>
 +
 
 +
at the beginning of your script, but people often forget. Until one runs in a different locale (and many programmers do not), one does not notice the problem.
 +
 
 +
This is what one gets when mixing user interface for humans (e.g. the output of '''ls''' in its [[L10N|localized]] form) with [[API|application programming interface]] which needs to be as stable as possible! [[L10N|Localizing]] [[API]] is general bad idea!
[[Category:APITypes]]
[[Category:APITypes]]
 +
[[Category:APIDesignPatterns:Anti]]

JaroslavTulach at 06:31, 31 May 2015 - 2015-05-31 06:31:46

←Older revision Revision as of 06:31, 31 May 2015
Line 7: Line 7:
Still it is clear that [[I18N]] is a [[APITypes|kind of API]].
Still it is clear that [[I18N]] is a [[APITypes|kind of API]].
 +
== Localizing Output ==
 +
On the other hand, [[L10N|localizing]] an [[API]] is probably not [[good]] idea. [[TBD]].
[[Category:APITypes]]
[[Category:APITypes]]

JaroslavTulach: /* Localization Team */ - 2015-05-31 06:29:55

Localization Team

←Older revision Revision as of 06:29, 31 May 2015
Line 3: Line 3:
== Localization Team ==
== Localization Team ==
-
The team developing [[NetBeans]] realized that while [[I18N]] is responsibility of developers, the actual [[L10N]] (e.g. localization) is a task for completely different group. The ''localizators''. The communication between these two groups fulfills all aspects of an [[API]]: most of the [[I18N]] work in [[Java]] is done through [[PropertyFiles]] and we already know that such files for one [[APITypes|API type]]. Moreover the [[L10N]] is done on a different schedule. The code developers first prepare the code for [[I18N]] and only later the ''localizers'' jump on to it to do the [[L10N]] - e.g. a sign of [[distributed development]] - which is one of the major reasons why people invest in an [[API]]. Of course the fault tolerance is usually higher in case of [[PropertyFiles]] - if translated property is missing, one falls back to default ([[English]] in case of [[NetBeans]]) version - the outcome is ugly, but nothing gets broken or corrupted.
+
The team developing [[NetBeans]] realized that while [[I18N]] is responsibility of developers, the actual [[L10N]] (e.g. localization) is a task for completely different group. The ''localizators''. The communication between these two groups fulfills all aspects of an [[API]]: most of the [[I18N]] work in [[Java]] is done through [[PropertyFiles]] and we already know that such files for one [[APITypes|API type]]. Moreover the [[L10N]] is done on a different schedule. The code developers first prepare the code for [[I18N]] and only later the ''localizers'' jump on to it to do the [[L10N]] - e.g. a sign of [[distributed development]] - which is one of the major reasons why people invest in an [[API]]. Of course the fault tolerance is usually higher in case of [[PropertyFiles]] - if translated property is missing, one falls back to default (English in case of [[NetBeans]]) version - the outcome is ugly, but nothing gets broken or corrupted.
Still it is clear that [[I18N]] is a [[APITypes|kind of API]].
Still it is clear that [[I18N]] is a [[APITypes|kind of API]].

JaroslavTulach: /* Localization Team */ - 2015-05-31 06:29:43

Localization Team

←Older revision Revision as of 06:29, 31 May 2015
Line 3: Line 3:
== Localization Team ==
== Localization Team ==
-
The team developing [[NetBeans]] realized that while [[I18N]] is responsibility of developers, the actual [[L10N]] (e.g. localization) is a task for completely different group. The ''localizators''. The communication between these two groups fulfills all aspects of an [[API]]: most of the [[I18N]] work in [[Java]] is done through [[PropertyFiles]] and we already know that such files for one [[APITypes|API type]]. Moreover the [[L10N]] is done on a different schedule. The code developers first prepare the code for [[I18N]] and only later the ''localizers'' jump on to it to do the [[L10N]] - e.g. a sign of [[distributed development]] - which is one of the major reasons why people invest in an [[API]].
+
The team developing [[NetBeans]] realized that while [[I18N]] is responsibility of developers, the actual [[L10N]] (e.g. localization) is a task for completely different group. The ''localizators''. The communication between these two groups fulfills all aspects of an [[API]]: most of the [[I18N]] work in [[Java]] is done through [[PropertyFiles]] and we already know that such files for one [[APITypes|API type]]. Moreover the [[L10N]] is done on a different schedule. The code developers first prepare the code for [[I18N]] and only later the ''localizers'' jump on to it to do the [[L10N]] - e.g. a sign of [[distributed development]] - which is one of the major reasons why people invest in an [[API]]. Of course the fault tolerance is usually higher in case of [[PropertyFiles]] - if translated property is missing, one falls back to default ([[English]] in case of [[NetBeans]]) version - the outcome is ugly, but nothing gets broken or corrupted.
 +
 
 +
Still it is clear that [[I18N]] is a [[APITypes|kind of API]].

JaroslavTulach: /* Localization Team */ - 2015-05-31 06:25:36

Localization Team

←Older revision Revision as of 06:25, 31 May 2015
Line 3: Line 3:
== Localization Team ==
== Localization Team ==
-
The team developing [[NetBeans]] realized that while [[I18N]] is responsibility of developers, the actual [[L10N]] (e.g. localization) is a task for completely different group. The ''localizators''. The communication between these two groups fulfills all aspects of an [[API]]: most of the [[I18N]] work in [[Java]] is done through [[PropertyFiles]] and we already know that such files for one [[APITypes|API type]]. Moreover the [[L10N]] is done on a different schedule. The code developers first prepare the code for [[I18N]] and only later the ''localizers'' jump on to it to do the [[L10N]] - e.g. a sign of distributed development.
+
The team developing [[NetBeans]] realized that while [[I18N]] is responsibility of developers, the actual [[L10N]] (e.g. localization) is a task for completely different group. The ''localizators''. The communication between these two groups fulfills all aspects of an [[API]]: most of the [[I18N]] work in [[Java]] is done through [[PropertyFiles]] and we already know that such files for one [[APITypes|API type]]. Moreover the [[L10N]] is done on a different schedule. The code developers first prepare the code for [[I18N]] and only later the ''localizers'' jump on to it to do the [[L10N]] - e.g. a sign of [[distributed development]] - which is one of the major reasons why people invest in an [[API]].
 +
 
 +
 
[[Category:APITypes]]
[[Category:APITypes]]

JaroslavTulach: /* Localization Team */ - 2015-05-31 06:24:59

Localization Team

←Older revision Revision as of 06:24, 31 May 2015
Line 3: Line 3:
== Localization Team ==
== Localization Team ==
-
The team developing [[NetBeans]] realized that while [[I18N]] is responsibility of developers, the actual [[L10N]] (e.g. localization) is a task for completely different group. The ''localizators''. The communication between these two groups fulfills all aspects of an [[API]]: [[TBD]].
+
The team developing [[NetBeans]] realized that while [[I18N]] is responsibility of developers, the actual [[L10N]] (e.g. localization) is a task for completely different group. The ''localizators''. The communication between these two groups fulfills all aspects of an [[API]]: most of the [[I18N]] work in [[Java]] is done through [[PropertyFiles]] and we already know that such files for one [[APITypes|API type]]. Moreover the [[L10N]] is done on a different schedule. The code developers first prepare the code for [[I18N]] and only later the ''localizers'' jump on to it to do the [[L10N]] - e.g. a sign of distributed development.
 +
 
 +
 
 +
[[Category:APITypes]]