Module:Convert character width/data
Appearance
| This module is rated as ready for general use. It has reached a mature state, is considered relatively stable and bug-free, and may be used wherever appropriate. It can be mentioned on help pages and other Wikipedia resources as an option for new users. To minimise server load and avoid disruptive output, improvements should be developed through sandbox testing rather than repeated trial-and-error editing. |
| This module is currently under extended confirmed protection. Extended confirmed protection prevents edits from all unregistered editors and registered users with fewer than 30 days tenure and 500 edits. The policy on community use specifies that extended confirmed protection can be applied to combat disruption, if semi-protection has proven to be ineffective. Extended confirmed protection may also be applied to enforce arbitration sanctions. Please discuss any changes on the talk page; you may submit an edit request to ask for uncontroversial changes supported by consensus. |
| This Lua module is used on approximately 2,700 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them. |
This module converts a limited set of characters between halfwidth and fullwidth forms.
Usage
- From half-width to full-width
{{#invoke:convert character width|full|text to convert}}
- From full-width to half-width
{{#invoke:convert character width|half|text to convert}}
Examples
{{#invoke:convert character width|full|some text 0123456789}}→ some text 0123456789{{#invoke:convert character width|half|some text 0123456789}}→ some text 0123456789
Support
Care should be taken when using this module with Hangul and katakana; as of September 2013 there is only limited support for katakana and no support for Hangul. Some of the more obscure punctuation characters are also not yet supported.
Data
The character data used by the module is located at Module:Convert character width/data. Fixes and updates to the data set are welcomed enthusiastically.
-- This is the data page for [[Module:Convert character width]].
-- TODO: There are quite a few missing characters. See [[Halfwidth and Fullwidth Forms (Unicode block)]] for the full list.
local convert = {
[" "] = " ",
["!"] = "!",
['"'] = '"',
['#'] = '#',
['$'] = '$',
['\%'] = '%', -- This needs to be escaped, otherwise it generates invalid pattern matches.
['&'] = '&',
["'"] = "'",
['('] = '(',
[')'] = ')',
['*'] = '*',
['+'] = '+',
[','] = ',',
['-'] = '-',
['.'] = '.',
['/'] = '/',
['0'] = '0',
['1'] = '1',
['2'] = '2',
['3'] = '3',
['4'] = '4',
['5'] = '5',
['6'] = '6',
['7'] = '7',
['8'] = '8',
['9'] = '9',
[':'] = ':',
[';'] = ';',
['<'] = '<',
['='] = '=',
['>'] = '>',
['?'] = '?',
['@'] = '@',
['A'] = 'A',
['B'] = 'B',
['C'] = 'C',
['D'] = 'D',
['E'] = 'E',
['F'] = 'F',
['G'] = 'G',
['H'] = 'H',
['I'] = 'I',
['J'] = 'J',
['K'] = 'K',
['L'] = 'L',
['M'] = 'M',
['N'] = 'N',
['O'] = 'O',
['P'] = 'P',
['Q'] = 'Q',
['R'] = 'R',
['S'] = 'S',
['T'] = 'T',
['U'] = 'U',
['V'] = 'V',
['W'] = 'W',
['X'] = 'X',
['Y'] = 'Y',
['Z'] = 'Z',
['['] = '[',
[ [[\]] ] = '\',
[']'] = ']',
['^'] = '^',
['_'] = '_',
['`'] = '`',
['a'] = 'a',
['b'] = 'b',
['c'] = 'c',
['d'] = 'd',
['e'] = 'e',
['f'] = 'f',
['g'] = 'g',
['h'] = 'h',
['i'] = 'i',
['j'] = 'j',
['k'] = 'k',
['l'] = 'l',
['m'] = 'm',
['n'] = 'n',
['o'] = 'o',
['p'] = 'p',
['q'] = 'q',
['r'] = 'r',
['s'] = 's',
['t'] = 't',
['u'] = 'u',
['v'] = 'v',
['w'] = 'w',
['x'] = 'x',
['y'] = 'y',
['z'] = 'z',
['{'] = '{',
['|'] = '|',
['}'] = '}',
['~'] = '~',
--[[
-- TODO: The following need to be converted to the correct characters.
[''] = '⦅',
[''] = '⦆',
[''] = '。',
[''] = '「',
[''] = '」',
[''] = '、',
[''] = '・',
--]]
['ヲ'] = 'ヲ',
['ァ'] = 'ァ',
['ィ'] = 'ィ',
['ゥ'] = 'ゥ',
['ェ'] = 'ェ',
['ォ'] = 'ォ',
['ャ'] = 'ャ',
['ュ'] = 'ュ',
['ョ'] = 'ョ',
['ッ'] = 'ッ',
['ー'] = 'ー',
['ア'] = 'ア',
['イ'] = 'イ',
['ウ'] = 'ウ',
['エ'] = 'エ',
['オ'] = 'オ',
['カ'] = 'カ',
['キ'] = 'キ',
['ク'] = 'ク',
['ケ'] = 'ケ',
['コ'] = 'コ',
['サ'] = 'サ',
['シ'] = 'シ',
['ス'] = 'ス',
['セ'] = 'セ',
['ソ'] = 'ソ',
['タ'] = 'タ',
['チ'] = 'チ',
['ツ'] = 'ツ',
['テ'] = 'テ',
['ト'] = 'ト',
['ナ'] = 'ナ',
['ニ'] = 'ニ',
['ヌ'] = 'ヌ',
['ネ'] = 'ネ',
['ノ'] = 'ノ',
['ハ'] = 'ハ',
['ヒ'] = 'ヒ',
['フ'] = 'フ',
['ヘ'] = 'ヘ',
['ホ'] = 'ホ',
['マ'] = 'マ',
['ミ'] = 'ミ',
['ム'] = 'ム',
['メ'] = 'メ',
['モ'] = 'モ',
['ヤ'] = 'ヤ',
['ユ'] = 'ユ',
['ヨ'] = 'ヨ',
['ラ'] = 'ラ',
['リ'] = 'リ',
['ル'] = 'ル',
['レ'] = 'レ',
['ロ'] = 'ロ',
['ワ'] = 'ワ',
['ン'] = 'ン'
}
return convert