Difference between revisions of "Globalyzer Concatenation"

From Lingoport Wiki
Jump to: navigation, search
(Introduction)
(Introduction)
Line 25: Line 25:
   
 
If a translator ends up with four segments to translate, the overall sentence is lost. Furthermore, even if the translator could translate it correctly, the word order is different by languages, the grammar is different too. For instance, in French, <i>a person <b>has</b> four years</i>. Without the context of the full sentence, a translator could not guess where "is" will be used.
 
If a translator ends up with four segments to translate, the overall sentence is lost. Furthermore, even if the translator could translate it correctly, the word order is different by languages, the grammar is different too. For instance, in French, <i>a person <b>has</b> four years</i>. Without the context of the full sentence, a translator could not guess where "is" will be used.
  +
  +
For applications which need to execute in different locales, strings which are visible to the user should not be concatenated. Some feedback from Lingoport clients on this particular problem, before being internationalized properly:
  +
* “We get a lot of questions from our L10N vendor” 
  +
* “Our biggest trouble area is fragmented strings in the resource bundle.  At first, my team was just going along happily externalizing  […]”
  +
* “We have a lot of cases where there is a variable in the middle of the string” 
  +
* “We end up with two strings in the resources bundle rather than one string with a token for the variable piece of content”
   
 
= User Interface =
 
= User Interface =

Revision as of 18:06, 5 November 2015

UNDER EMBARGO

Introduction

String concatenation is widely used in software programming. String concatenation is the operation of joining two character strings end-to-end For example:

String hi = “Hello ” + “World!”;

Another example:

System.out.print(“Hello “);
System.out.println(“World!”);


A typical usage is with a variable in the middle of a string:

String ua = user +“ is ”+ age + “ years old.”;

The strings "is" and " years old." could be externalized into two resources in a resource bundle, for example in a file named resources.properties:

RES1= years old.
RES2=Title
RES3=Navigate
RES4=is

If a translator ends up with four segments to translate, the overall sentence is lost. Furthermore, even if the translator could translate it correctly, the word order is different by languages, the grammar is different too. For instance, in French, a person has four years. Without the context of the full sentence, a translator could not guess where "is" will be used.

For applications which need to execute in different locales, strings which are visible to the user should not be concatenated. Some feedback from Lingoport clients on this particular problem, before being internationalized properly:

  • “We get a lot of questions from our L10N vendor” 
  • “Our biggest trouble area is fragmented strings in the resource bundle.  At first, my team was just going along happily externalizing  […]”
  • “We have a lot of cases where there is a variable in the middle of the string” 
  • “We end up with two strings in the resources bundle rather than one string with a token for the variable piece of content”

User Interface

Type of Rules

Example

Code Snippet



This snippet of code does have strings.


Rule

The String Method Filter rule would be configured the following way:

  • Name: '
  • Pattern: '
  • Class or Variable Type(s): '
  • Description: '
  • Help Page: <blank>

The String Method Detection rule would be configured the following way:

  • Name: '
  • Pattern: '
  • Class or Variable Type(s): '
  • Description: '
  • Help Page: <blank>

Result

When the rules are applied:

  • The string
  • The string