Internationalization/feasibility

Revision as of 07:48, 31 May 2006 by Etienner (Talk | contribs) (added page to our category)


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]