Datatype Editor/en

Aus expecco Wiki (Version 25.x)
Zur Navigation springen Zur Suche springen

Introduction

This editor is used to define new datatypes. Datatypes are attached to pins and environment variables, and usually presented by name in a datatype definition pull-down menu. User defined datatypes are shown in those pull-down lists at the bottom of the menu.

There are multiple conceptional ways to define a datatype:

  • as a subtype of an existing type (enum, range types)
  • by combining elements of existing types (tuple, array, structure or union types)
  • be explicit definition as a class or datastructure (C-type, ST/X-class type)

Also, there are various syntactical representations, in which a type may be entered or imported:

  • Internal expecco Syntax
  • XML / DTD / IDL
  • C language struct syntax
  • Copybook, SUNRPC-IDL, COM-IDL, ASN1

The set of options avalable in the editor depends on the expecco version (basic, pro, enterprise) and the set of available plugins (SWIFT, ASN1, etc.), as some import formats are provided by additional plugins.

To define a type, first choose an appropriate representation in the "Type-Kind" list. A template showing the syntax of this type will be shown. Change the template and press "Accept" to install the type. The second tab in the editor labeled "Type Description" shows the type's definition in expecco's internal type description language, which is usually only of interest to validate a type's correctness if an alien format was used to import a type definition. This format is described below .


Fehler beim Erstellen des Vorschaubildes: Die Miniaturansicht konnte nicht am vorgesehenen Ort gespeichert werden

Type Kinds (Semantic)

Primary Types

These are builtin types (classes) of the underlying Smalltalk execution framework. For example, "String", "Array", "Set", "Btree", "Dictionary" to name a few. There are thousands of classes available, but you will usually get along happily with only a few if at all needed (usually, to refer to some framework which is either already present inside Smalltalk, such as FTP, HTTP, or other protocols, or to refer to additional plugin framework classes). The most common primary types are shortly listed in the "Datatype documentation" . For more details, please refer to the "Basic Classes Introduction" and the "Online Class Documentation" (containing full lists and documentation of all classes).

A number of primary types is available directly via the datatype menus. In a textual definition, the underlying typeclass is placed in angle brackets, as in:

    <String>

or:

    <Socket>

Array Types

Are defined as a homogenous collection of a elements, which are all of the same baseType. The number of elements is variable among instances. The elements are accessable by a numeric index which is 1 based (both for Smalltalk and JavaScript elementary blocks). The standard library also provides 0-based indexing blocks, which is sometimes more convenient for C/Java programmers.

In a textual definition, array types consist of a basetype followed by "[]", as in:

    <String>[]    -- an array of Strings

or:

    <Number>[]    -- an array of Numbers

Tuple Types

Are defined as a non-homogenous, fixed size vector of a elements. Each element has a predefined type. The types may be different among elements, but all instances of the tuple type have the same type of element at corresponding positions. The elements are accessable by index (1..). Tuples are similar to compound types as described below. The difference is that tuples address the eleemnts by index, whereas compounds address them by name. Tuples are also similar to array types, however, the number of elements is fixed in a tuple, whereas arrays can have an arbitrary number of elements.

In a textual description, a tuple is defined by listing the individual element types in parenthesis. For example, a tuple which might represent a 3D coordinate, could be defined as:

    ( <Number> <Number> <Number> )

or, a tuple which associates a name with an age and gender might be:

    ( <String> <Integer> enum(M | F) )

For the last example, it would probably be better to use a compound, which names the slots.

Class Types

A user defined class. Includes the instance's private slots (also called "instance variables"), and a set of operations (usually called "methods" or "virtual functions"). All of this information is stored with the test suite. Instance slots are accessable by getter/setter method invocations. Class types are defined by entering the class definition in a programming language (either the JavaScript-like dialect or Smalltalk).

Private class definitions allow for almost any functionality to be defined, but require some programming skills. For an introduction to programming, please refer to the "Online Documentation", the "Beginners Introduction & Tutorial", and the "Smalltalk Tutorial",.

Compound Types

A collection of named slots. Is similar to a Class Type without operations (actually, that is how the system represents them internally). The elements are accessable by name or keyed access, using the name as key (i.e. like a dictionary).

In a textual definition, list the names and types of the individual elements in braces; for example, a person record might be defined as:

    {
        firstame : String
        lastName : String
        age      : Integer
        gender   : enum(M | F)
    }

The fields of an instance named "c" can be accessed as "c lastName" (Smalltalk) and "c.lastName" (JavaScript). Alternatively, using the dictionary protocol as "c at:'lastName' " / " c[ 'lastName' ]". Compound object instances can be passed to input pins with Dictionary-type. Compound type definitions can also be imported from various other formats, such as DTD, XML, C-header files etc.

Enumeration Types

A single symbolic value from a list of enumerated values. Typical examples are:

    enum( red | green | blue)

or:

    enum( male | female)

or:

    enum( 'foo-a' | 'foo-b' | 'foo-c' | 'bar-a' | 'bar-b' )

The last example uses quotes around the element names, as these contain a special (non-alphanumeric) character.

When used as a freeze value or environment variable value, a combo list showing only the valid enum elements is shown. By default, the values are sorted alphabetically in one single list. If your type consists of a large number of values, you may want to specify a grouping scheme. For example, the last of the above examples could be presented as either a single list with 5 items, or as a 2-item list ('foo' and 'bar') with submenus for each prefix.

Range Types

A subrange of Integer values. Used to limit the set of valid elements. For example, a byte could be defined as:

    range( <Integer> : 0 .. 255 )

Union Types

The instance can be an instance from a number of other types. In a textual definition, list the possible element types, separated by a vetical bar, as in:

    <Filename> | <String> | <URL>

there is no explicit discriminator stored with the value. However, due to the run-time type information, it is possible in an elementary block to determine the type of value passed in, via the class or isXXX or isKindOf: protocols.

Type Representation (Syntax)

Various textual representations are possible; some are already built into the base expecco system, others are addons and present if certain plugins are installed.

Formal BNF Description of the Expecco Type Syntax

Expecco provides its own native type-description language, with an easy to understand and use syntax:

type ::= <nonArrayType> | <arrayType>
arrayType ::= <nonArrayType> '[' ']'
nonArrayType ::= <tupleType> | <unionType> | <compoundType> 
                             | <enumType> | <rangeType> | <monitorType> 
                             | <primaryType> | <simpleType>
tupleType ::= '(' <elementType1> [','] <elementType2> .. <elementTypeN> ')'
elementType ::= <type>
unionType ::= '(' <alternativeType1> '|' <alternativeType2 > '|' .. <alternativeTypeN> ')'
alternativeType ::= <type>
enumType ::= 'enum' '(' <enumValue1> <enumValue2> .. <enumValueN> ')'
enumValue ::= <identifier> | <quoted-string> | <dquoted-string>
rangeType ::= 'range' '(' <baseType> ':' minValue .. <maxValue> ')'
minValue ::= <constant>
maxValue ::= <constant>
monitorType ::= 'monitor' '(' <baseType>')'
portType ::= 'port' '(' <baseType>')'
compoundType ::= '{' <fieldSpec1> <fieldSpec2> .. <fieldSpecN> '}'
fieldSpec ::= <fieldIdentifier> ':' <fieldType> [ '=' <defaultValue> ] [',']
fieldType ::= <type>
primaryType ::= '<' <BuiltIn-Classname> '>'
BuiltIn-Classname ::= <identifier>
simpleType ::= <anyType> | <templateType> | <constraintTemplateType> | <namedType>
anyType ::= '*'
templateType ::= '#' <templateIdentifier>

constraintTemplateType ::= '#' <templateIdentifier> <setOfConstraintTypes>
setOfConstraintTypes ::= <unionType>
<namedType> ::= 'any' | 'struct' | <typeName_in_project> | <Smalltalk-Classname>
typeName_in_project ::= <identifier>

Notes:
The separating commas in the tuple- and compound definitions are optional (vsn 2.1).
The "struct" named type is only supported by vsn 2.1 and newer.
This format is used if you select "Defined" type in the editor. It is also expected if you select "Define..." in one of the type menus (Pin-Type, Veriable-Type, Skill-Type). Support for this representation is part of the base expecco system.

DTD Type Definition

A DTD-Defintion can also be used to specify a compound type. For this, choose "Compound (DTD-Defined)", and paste the DTD into the text area. Support for this representation is part of the base expecco system.

C-Language Type Definition

A C-Language code fragment can also be used to specify a compound or union type. For this, choose "CType-C-Defined)", and paste the C-type definition into the text area. Instances of this type are especially useful when calling external DLL functions. Support for this representation is part of the base expecco system.

A typical C-Language definition looks like:

struct {
   int i1;
   float f1;
   double d1;
   char c[20];
}

XSD Type Definition

A definition in XML. <usage: to be defined>

COBOL CopyBook Definition

Parses a Cobol-CopyBook type-definition. This is only avaliable as plugin. Please read the corresponding plugin documentation for details.

ASN1 Type Definiton

Parses an ASN1 type-definition. This is only avaliable as plugin. Please read the corresponding plugin documentation for details.

SunRPC-IDL Type Definiton

Parses a SunRPC type-definition, which is used for example in the NFS file-system or in VISA lab equipment interfaces. This is only avaliable as plugin. Please read the corresponding plugin documentation for details.

Microsoft COM/DCOM-IDL Type Definiton

Parses a COM/DCOM IDL type-definition. This is only avaliable as plugin. Please read the corresponding plugin documentation for details.


{{#if:[[Project:Language policy|]] | |

}}

[[Project:Language policy|]] [[::Datatype Editor/en|English]] {{#ifexist: {{#if:||:Datatype Editor/en}}/af

| • {{#if:

 |Afrikaans
 |[[::Datatype Editor/en/af|Afrikaans]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ar | • {{#if:

 |العربية
 |[[::Datatype Editor/en/ar|العربية]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ast | • {{#if:

 |asturianu
 |[[::Datatype Editor/en/ast|asturianu]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/az | • {{#if:

 |azərbaycanca
 |[[::Datatype Editor/en/az|azərbaycanca]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/bcc | • {{#if:

 |جهلسری بلوچی
 |[[::Datatype Editor/en/bcc|جهلسری بلوچی]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/bg | • {{#if:

 |български
 |[[::Datatype Editor/en/bg|български]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/br | • {{#if:

 |brezhoneg
 |[[::Datatype Editor/en/br|brezhoneg]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/bn | • {{#if:

 |বাংলা
 |[[::Datatype Editor/en/bn|বাংলা]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/bs | • {{#if:

 |bosanski
 |[[::Datatype Editor/en/bs|bosanski]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ca | • {{#if:

 |català
 |[[::Datatype Editor/en/ca|català]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/cs | • {{#if:

 |čeština
 |[[::Datatype Editor/en/cs|čeština]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/da | • {{#if:

 |dansk
 |[[::Datatype Editor/en/da|dansk]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/de | • {{#if:

 |Deutsch
 |[[::Datatype Editor/en/de|Deutsch]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/diq | • {{#if:

 |Zazaki
 |[[::Datatype Editor/en/diq|Zazaki]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/el | • {{#if:

 |Ελληνικά
 |[[::Datatype Editor/en/el|Ελληνικά]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/eo | • {{#if:

 |Esperanto
 |[[::Datatype Editor/en/eo|Esperanto]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/es | • {{#if:

 |español
 |[[::Datatype Editor/en/es|español]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/fa | • {{#if:

 |فارسی
 |[[::Datatype Editor/en/fa|فارسی]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/fi | • {{#if:

 |suomi
 |[[::Datatype Editor/en/fi|suomi]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/fr | • {{#if:

 |français
 |[[::Datatype Editor/en/fr|français]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/gl | • {{#if:

 |galego
 |[[::Datatype Editor/en/gl|galego]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/gu | • {{#if:

 |ગુજરાતી
 |[[::Datatype Editor/en/gu|ગુજરાતી]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/he | • {{#if:

 |עברית
 |[[::Datatype Editor/en/he|עברית]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/hi | • {{#if:

 |हिन्दी
 |[[::Datatype Editor/en/hi|हिन्दी]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/hu | • {{#if:

 |magyar
 |[[::Datatype Editor/en/hu|magyar]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/hy | • {{#if:

 |հայերեն
 |[[::Datatype Editor/en/hy|հայերեն]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/id | • {{#if:

 |Bahasa Indonesia
 |[[::Datatype Editor/en/id|Bahasa Indonesia]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/io | • {{#if:

 |Ido
 |[[::Datatype Editor/en/io|Ido]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/it | • {{#if:

 |italiano
 |[[::Datatype Editor/en/it|italiano]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ja | • {{#if:

 |日本語
 |[[::Datatype Editor/en/ja|日本語]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ka | • {{#if:

 |ქართული
 |[[::Datatype Editor/en/ka|ქართული]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/kk | • {{#if:

 |қазақша
 |[[::Datatype Editor/en/kk|қазақша]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/km | • {{#if:

 |ភាសាខ្មែរ
 |[[::Datatype Editor/en/km|ភាសាខ្មែរ]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ko | • {{#if:

 |한국어
 |[[::Datatype Editor/en/ko|한국어]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ksh | • {{#if:

 |Ripoarisch
 |[[::Datatype Editor/en/ksh|Ripoarisch]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/kw | • {{#if:

 |kernowek
 |[[::Datatype Editor/en/kw|kernowek]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/la | • {{#if:

 |Latina
 |[[::Datatype Editor/en/la|Latina]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/min | • {{#if:

 |Minangkabau
 |[[::Datatype Editor/en/min|Minangkabau]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/mk | • {{#if:

 |македонски
 |[[::Datatype Editor/en/mk|македонски]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ml | • {{#if:

 |മലയാളം
 |[[::Datatype Editor/en/ml|മലയാളം]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/mr | • {{#if:

 |मराठी
 |[[::Datatype Editor/en/mr|मराठी]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ms | • {{#if:

 |Bahasa Melayu
 |[[::Datatype Editor/en/ms|Bahasa Melayu]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/nl | • {{#if:

 |Nederlands
 |[[::Datatype Editor/en/nl|Nederlands]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/no | • {{#if:

 |norsk
 |[[::Datatype Editor/en/no|norsk]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/oc | • {{#if:

 |occitan
 |[[::Datatype Editor/en/oc|occitan]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/or | • {{#if:

 |ଓଡ଼ିଆ
 |[[::Datatype Editor/en/or|ଓଡ଼ିଆ]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/pl | • {{#if:

 |polski
 |[[::Datatype Editor/en/pl|polski]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/pt | • {{#if:

 |português
 |[[::Datatype Editor/en/pt|português]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/pt-br | • {{#if:

 |português do Brasil
 |[[::Datatype Editor/en/pt-br|português do Brasil]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ro | • {{#if:

 |română
 |[[::Datatype Editor/en/ro|română]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ru | • {{#if:

 |русский
 |[[::Datatype Editor/en/ru|русский]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/si | • {{#if:

 |සිංහල
 |[[::Datatype Editor/en/si|සිංහල]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/sk | • {{#if:

 |slovenčina
 |[[::Datatype Editor/en/sk|slovenčina]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/sl | • {{#if:

 |slovenščina
 |[[::Datatype Editor/en/sl|slovenščina]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/sq | • {{#if:

 |shqip
 |[[::Datatype Editor/en/sq|shqip]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/sr | • {{#if:

 |српски / srpski
 |[[::Datatype Editor/en/sr|српски / srpski]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/sv | • {{#if:

 |svenska
 |[[::Datatype Editor/en/sv|svenska]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ta | • {{#if:

 |தமிழ்
 |[[::Datatype Editor/en/ta|தமிழ்]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/th | • {{#if:

 |ไทย
 |[[::Datatype Editor/en/th|ไทย]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/tr | • {{#if:

 |Türkçe
 |[[::Datatype Editor/en/tr|Türkçe]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/uk | • {{#if:

 |українська
 |[[::Datatype Editor/en/uk|українська]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/vi | • {{#if:

 |Tiếng Việt
 |[[::Datatype Editor/en/vi|Tiếng Việt]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/yi | • {{#if:

 |ייִדיש
 |[[::Datatype Editor/en/yi|ייִדיש]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/yue | • {{#if:

 |粵語
 |[[::Datatype Editor/en/yue|粵語]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/zh | • {{#if:

 |中文
 |[[::Datatype Editor/en/zh|中文]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/zh-hans | • {{#if:

 |中文(简体)
 |[[::Datatype Editor/en/zh-hans|中文(简体)]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/zh-hant | • {{#if:

 |中文(繁體)
 |[[::Datatype Editor/en/zh-hant|中文(繁體)]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/zh-tw | • {{#if:

 |中文(臺灣)
 |[[::Datatype Editor/en/zh-tw|中文(臺灣)]]
 }}
}}

{{#if:{{#ifexist: {{#if:||:Datatype Editor/en}}/af

| • {{#if:

 |Afrikaans
 |[[::Datatype Editor/en/af|Afrikaans]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ar | • {{#if:

 |العربية
 |[[::Datatype Editor/en/ar|العربية]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ast | • {{#if:

 |asturianu
 |[[::Datatype Editor/en/ast|asturianu]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/az | • {{#if:

 |azərbaycanca
 |[[::Datatype Editor/en/az|azərbaycanca]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/bcc | • {{#if:

 |جهلسری بلوچی
 |[[::Datatype Editor/en/bcc|جهلسری بلوچی]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/bg | • {{#if:

 |български
 |[[::Datatype Editor/en/bg|български]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/br | • {{#if:

 |brezhoneg
 |[[::Datatype Editor/en/br|brezhoneg]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/bn | • {{#if:

 |বাংলা
 |[[::Datatype Editor/en/bn|বাংলা]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/bs | • {{#if:

 |bosanski
 |[[::Datatype Editor/en/bs|bosanski]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ca | • {{#if:

 |català
 |[[::Datatype Editor/en/ca|català]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/cs | • {{#if:

 |čeština
 |[[::Datatype Editor/en/cs|čeština]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/da | • {{#if:

 |dansk
 |[[::Datatype Editor/en/da|dansk]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/de | • {{#if:

 |Deutsch
 |[[::Datatype Editor/en/de|Deutsch]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/diq | • {{#if:

 |Zazaki
 |[[::Datatype Editor/en/diq|Zazaki]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/el | • {{#if:

 |Ελληνικά
 |[[::Datatype Editor/en/el|Ελληνικά]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/eo | • {{#if:

 |Esperanto
 |[[::Datatype Editor/en/eo|Esperanto]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/es | • {{#if:

 |español
 |[[::Datatype Editor/en/es|español]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/fa | • {{#if:

 |فارسی
 |[[::Datatype Editor/en/fa|فارسی]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/fi | • {{#if:

 |suomi
 |[[::Datatype Editor/en/fi|suomi]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/fr | • {{#if:

 |français
 |[[::Datatype Editor/en/fr|français]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/gl | • {{#if:

 |galego
 |[[::Datatype Editor/en/gl|galego]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/gu | • {{#if:

 |ગુજરાતી
 |[[::Datatype Editor/en/gu|ગુજરાતી]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/he | • {{#if:

 |עברית
 |[[::Datatype Editor/en/he|עברית]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/hi | • {{#if:

 |हिन्दी
 |[[::Datatype Editor/en/hi|हिन्दी]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/hu | • {{#if:

 |magyar
 |[[::Datatype Editor/en/hu|magyar]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/hy | • {{#if:

 |հայերեն
 |[[::Datatype Editor/en/hy|հայերեն]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/id | • {{#if:

 |Bahasa Indonesia
 |[[::Datatype Editor/en/id|Bahasa Indonesia]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/io | • {{#if:

 |Ido
 |[[::Datatype Editor/en/io|Ido]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/it | • {{#if:

 |italiano
 |[[::Datatype Editor/en/it|italiano]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ja | • {{#if:

 |日本語
 |[[::Datatype Editor/en/ja|日本語]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ka | • {{#if:

 |ქართული
 |[[::Datatype Editor/en/ka|ქართული]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/kk | • {{#if:

 |қазақша
 |[[::Datatype Editor/en/kk|қазақша]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/km | • {{#if:

 |ភាសាខ្មែរ
 |[[::Datatype Editor/en/km|ភាសាខ្មែរ]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ko | • {{#if:

 |한국어
 |[[::Datatype Editor/en/ko|한국어]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ksh | • {{#if:

 |Ripoarisch
 |[[::Datatype Editor/en/ksh|Ripoarisch]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/kw | • {{#if:

 |kernowek
 |[[::Datatype Editor/en/kw|kernowek]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/la | • {{#if:

 |Latina
 |[[::Datatype Editor/en/la|Latina]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/min | • {{#if:

 |Minangkabau
 |[[::Datatype Editor/en/min|Minangkabau]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/mk | • {{#if:

 |македонски
 |[[::Datatype Editor/en/mk|македонски]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ml | • {{#if:

 |മലയാളം
 |[[::Datatype Editor/en/ml|മലയാളം]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/mr | • {{#if:

 |मराठी
 |[[::Datatype Editor/en/mr|मराठी]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ms | • {{#if:

 |Bahasa Melayu
 |[[::Datatype Editor/en/ms|Bahasa Melayu]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/nl | • {{#if:

 |Nederlands
 |[[::Datatype Editor/en/nl|Nederlands]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/no | • {{#if:

 |norsk
 |[[::Datatype Editor/en/no|norsk]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/oc | • {{#if:

 |occitan
 |[[::Datatype Editor/en/oc|occitan]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/or | • {{#if:

 |ଓଡ଼ିଆ
 |[[::Datatype Editor/en/or|ଓଡ଼ିଆ]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/pl | • {{#if:

 |polski
 |[[::Datatype Editor/en/pl|polski]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/pt | • {{#if:

 |português
 |[[::Datatype Editor/en/pt|português]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/pt-br | • {{#if:

 |português do Brasil
 |[[::Datatype Editor/en/pt-br|português do Brasil]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ro | • {{#if:

 |română
 |[[::Datatype Editor/en/ro|română]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ru | • {{#if:

 |русский
 |[[::Datatype Editor/en/ru|русский]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/si | • {{#if:

 |සිංහල
 |[[::Datatype Editor/en/si|සිංහල]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/sk | • {{#if:

 |slovenčina
 |[[::Datatype Editor/en/sk|slovenčina]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/sl | • {{#if:

 |slovenščina
 |[[::Datatype Editor/en/sl|slovenščina]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/sq | • {{#if:

 |shqip
 |[[::Datatype Editor/en/sq|shqip]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/sr | • {{#if:

 |српски / srpski
 |[[::Datatype Editor/en/sr|српски / srpski]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/sv | • {{#if:

 |svenska
 |[[::Datatype Editor/en/sv|svenska]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/ta | • {{#if:

 |தமிழ்
 |[[::Datatype Editor/en/ta|தமிழ்]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/th | • {{#if:

 |ไทย
 |[[::Datatype Editor/en/th|ไทย]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/tr | • {{#if:

 |Türkçe
 |[[::Datatype Editor/en/tr|Türkçe]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/uk | • {{#if:

 |українська
 |[[::Datatype Editor/en/uk|українська]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/vi | • {{#if:

 |Tiếng Việt
 |[[::Datatype Editor/en/vi|Tiếng Việt]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/yi | • {{#if:

 |ייִדיש
 |[[::Datatype Editor/en/yi|ייִדיש]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/yue | • {{#if:

 |粵語
 |[[::Datatype Editor/en/yue|粵語]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/zh | • {{#if:

 |中文
 |[[::Datatype Editor/en/zh|中文]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/zh-hans | • {{#if:

 |中文(简体)
 |[[::Datatype Editor/en/zh-hans|中文(简体)]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/zh-hant | • {{#if:

 |中文(繁體)
 |[[::Datatype Editor/en/zh-hant|中文(繁體)]]
 }}

}}{{#ifexist: {{#if:||:Datatype Editor/en}}/zh-tw | • {{#if:

 |中文(臺灣)
 |[[::Datatype Editor/en/zh-tw|中文(臺灣)]]
 }}

}} ||}}



Copyright © 2014-2024 eXept Software AG