User:RobertL/Edittools

Note: This is likely to be superseded by modifications from the usability initiative and will probably not be implemented.

Outline for desirable features that would be useful in the CharInsert extension.

Problem description
The current CharInsert extension is typically only used with what is described as "Edittools". Similar Edittools are used on many projects and consequently they are not localised and they are not configurable. Edittools are provided in the edit mode and provide you with the characters that are available for a language.

When the Edittools are made into an extension, the names of the languages and scripts can be localised and it will be possible to configure what will be made available for a particular Wiki or for a particular user.

Character Groups
Groups are a series of related characters stored for use in multiple places; this allows groups to be defined by the wiki, and the names of them groups localised. They would be specified using messages, under the prefix charinsert-group-name. The name message specifies the name of the character grouping (and should be localised), and the chars message specifies the characters in that group (and would generally not be localised).

This would allow us to unify the set of characters available across different wikis, making the tool more intuitive, and also reducing workload. Groups could be taken directly from the CLDR and unified in that way aswell.

Groups would be accessed using the group="name" attribute of the   tag.

Example

 * Messages
 * charinsert-group-example-name
 * Example
 * charinsert-group-example-chars
 * A B C D E F G H I J K L M N O P Q R S T U V W X Y Z


 * Accessor:
 *  


 * Output:
 * Without JavaScript
 * A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
 * With JavaScript
 * #|A #|B #|C #|D #|E #|F #|G #|H #|I #|J #|K #|L #|M #|N #|O #|P #|Q #|R #|S #|T #|U #|V #|W #|X #|Y #|Z

Character Group Selection
A series of groups could also be output at the same time. When JavaScript is present these could then be consolidated in to a drop-down box and displayed based upon the selected item.

This functionality would be accessed using the groups="name1 name2 name3"</tt> attribute of the  </tt> tag.

Example

 * Messages
 * charinsert-group-example1-name</tt>
 * Example 1
 * charinsert-group-example1-chars</tt>
 * A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
 * charinsert-group-example2-name</tt>
 * Example 2
 * charinsert-group-example2-chars</tt>
 * a b c d e f g h i j k l m n o p q r s t u v w x y z


 * Accessor
 *  <charinsert groups="example1 example2"/> </tt>


 * Output
 * Without JavaScript
 * Example 1: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
 * Example 2: a b c d e f g h i j k l m n o p q r s t u v w x y z
 * With JavaScript
 * Imagine "[Example 1|V]" being a drop-down box
 * [Example 1|V] #|A #|B #|C #|D #|E #|F #|G #|H #|I #|J #|K #|L #|M #|N #|O #|P #|Q #|R #|S #|T #|U #|V #|W #|X #|Y #|Z