Difference between revisions of "Internationalization/feasibility"

(Constant String)
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
[[Category:Internationalization]]
 +
[[Category:Internationalization SA project]]
 +
 
==Summary==
 
==Summary==
 
Our task is to find out the possible main difficulties that will be encoutered during both design and implementation of the [[internationalization|i18n]] framework.
 
Our task is to find out the possible main difficulties that will be encoutered during both design and implementation of the [[internationalization|i18n]] framework.
Line 7: Line 10:
 
* runtime generated/composed strings with variables
 
* runtime generated/composed strings with variables
  
==String types and their possible extraction difficulties==
+
==String types and their possible difficulties==
  
 
===Constant String===
 
===Constant String===
Line 20: Line 23:
 
====Difficulties====
 
====Difficulties====
 
* Bad readability for the traducer
 
* Bad readability for the traducer
* Possible
+
* Shortcuts conflict
 
====Possible Solution====
 
====Possible Solution====
  
 +
===Composed String===
 +
m_About:<font color="Blue">STRING is</font>
 +
  <font color="Blue">once</font>
 +
        <font color="Blue">Result</font>:<font color="Green">"&About"</font><font color="Red">+</font> Workbench_name <font color="Red">+</font><font color="Green"> "..."</font>
 +
  <font color="Blue">end</font>
 +
 +
====Difficulties====
 +
====Possible Solution====
 +
 +
===Runtime composed String containging queries===
 +
w_Project_directory_not_exist (file_name, dir_name: <font color="Blue">STRING</font>):<font color="Blue">STRING is</font>
 +
  <font color="Blue">do</font>
 +
        <font color="Blue">create Result</font>.make(256)
 +
        <font color="Blue">Result</font>.append (<font color="Green">"%NCannot open project '"</font>)
 +
        <font color="Blue">Result</font>.append (file_name)
 +
        <font color="Blue">Result</font>.append (<font color="Green">"'.%N%NMake sure you have a complete EIFGEN directory in '"</font>)
 +
        <font color="Blue">Result</font>.append (dir_name)
 +
        <font color="Blue">Result</font>.append (<font color="Green">"'."</font>)
 +
  <font color="Blue">end</font>
 +
 +
====Difficulties====
 +
====Possible Solution====
 
==Important Classes==
 
==Important Classes==
 +
 +
====Defining and formatting Strings====
  
 
* INTERFACE_NAMES: Include all the strings of the ES interface (buttons, labels, shortcuts...)
 
* INTERFACE_NAMES: Include all the strings of the ES interface (buttons, labels, shortcuts...)
 
* TEXT_FORMATTER: Text formatter for all text output formatting
 
* TEXT_FORMATTER: Text formatter for all text output formatting
 +
* ERROR: Error object sent by the compiler to the workbench. Ancestor class of all error classes (WARNING, SYNTAX_ERROR, INTERRUPT_ERROR, LACE_ERROR,EIFFEL_ERROR...)
 +
 +
====Implementations====
  
 
* STRING_GENERAL: "Common ancestors to all STRING classes." [base]
 
* STRING_GENERAL: "Common ancestors to all STRING classes." [base]
Line 37: Line 67:
 
* KS_STRING: Portable interface for class STRING [Gobo]
 
* KS_STRING: Portable interface for class STRING [Gobo]
 
* cluster: "gobo.kernel.unicode"
 
* cluster: "gobo.kernel.unicode"
 
* ERROR: Error object sent by the compiler to the workbench. Ancestor class of all error classes (WARNING, SYNTAX_ERROR, INTERRUPT_ERROR, LACE_ERROR,EIFFEL_ERROR...)
 
  
 
* WIDE_CHARACTER: Unicode characters, with comparison operations [base]
 
* WIDE_CHARACTER: Unicode characters, with comparison operations [base]

Latest revision as of 09:30, 15 August 2006


Summary

Our task is to find out the possible main difficulties that will be encoutered during both design and implementation of the i18n framework.

Main focuses are:

  • state of the Unicode implementation
  • strings usage in Vision2
  • runtime generated/composed strings with variables

String types and their possible difficulties

Constant String

Workbench_name: STRING is "EiffelStudio"

Difficulties

Possible Solution

String with label specific syntax

m_to_lower: STRING is "Set to &Lowercase%TCtrl+Shift+U"

Difficulties

  • Bad readability for the traducer
  • Shortcuts conflict

Possible Solution

Composed String

m_About:STRING is
  once
       Result:"&About"+ Workbench_name + "..."
  end

Difficulties

Possible Solution

Runtime composed String containging queries

w_Project_directory_not_exist (file_name, dir_name: STRING):STRING is
  do
       create Result.make(256)
       Result.append ("%NCannot open project '")
       Result.append (file_name)
       Result.append ("'.%N%NMake sure you have a complete EIFGEN directory in '")
       Result.append (dir_name)
       Result.append ("'.")
  end

Difficulties

Possible Solution

Important Classes

Defining and formatting Strings

  • INTERFACE_NAMES: Include all the strings of the ES interface (buttons, labels, shortcuts...)
  • TEXT_FORMATTER: Text formatter for all text output formatting
  • ERROR: Error object sent by the compiler to the workbench. Ancestor class of all error classes (WARNING, SYNTAX_ERROR, INTERRUPT_ERROR, LACE_ERROR,EIFFEL_ERROR...)

Implementations

  • STRING_GENERAL: "Common ancestors to all STRING classes." [base]
    • STRING: [base]
      • UC_STRING: Unicode strings [gobo]
        • UC_UTF8_STRING: Unicode strings with UTF-8 encoding
    • STRING_32: [base]
  • UC_CHARACTER: Unicode characters [gobo]
  • KS_STRING: Portable interface for class STRING [Gobo]
  • cluster: "gobo.kernel.unicode"
  • WIDE_CHARACTER: Unicode characters, with comparison operations [base]