LibreOffice Module librelogo (master) 1
LibreLogo.py
Go to the documentation of this file.
1# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2#
3# This file is part of the LibreOffice project.
4#
5# This Source Code Form is subject to the terms of the Mozilla Public
6# License, v. 2.0. If a copy of the MPL was not distributed with this
7# file, You can obtain one at http://mozilla.org/MPL/2.0/.
8#
9import sys, os, uno, unohelper
10import re, random, traceback, itertools
11import threading, time as __time__
12
13__lng__ = {}
14
16 if 'PYUNO_LOGLEVEL' in os.environ:
17 print(traceback.format_exc())
18
19# get localized commands and messages
20def __l12n__(lng):
21 global __lng_fallback__
22 try:
23 return __lng__[lng]
24 except:
25 try:
26 # load resource file
27 __lng__[lng] = dict([[i.decode("unicode-escape").split("=")[0].strip(), i.decode("unicode-escape").split("=")[1].strip().strip("|")] for i in open(__lngpath__ + "LibreLogo_" + lng + ".properties", 'rb').readlines() if b"=" in i])
28 return __lng__[lng]
29 except:
30 try:
31 # or use embedded fallback resource dictionary
32 __lng__[lng] = {}
33 for i in __lng_fallback__:
34 try:
35 __lng__[lng][i] = __lng_fallback__[i][lng]
36 except:
37 try:
38 __lng__[lng][i] = __lng_fallback__[i][lng.split('_')[0]]
39 except:
40 __lng__[lng][i] = __lng_fallback__[i]["en_US"]
41 return __lng__[lng]
42 except Exception:
43 __trace__()
44 return None
45
46try:
47 urebootstrap = os.environ["URE_BOOTSTRAP"]
48except:
49 # starting in command line updates embedded fallback language dictionary
50 print("Update fallback language resource using property file arguments")
51 for i in sys.argv[1:]:
52 r = re.match("^(.*)LibreLogo_(.*)[.]properties$", i)
53 __lngpath__= r.group(1)
54 __l12n__(r.group(2))
55 fallback = {}
56
57 # fallback of fallback is en_US
58 for i in __lng__["en_US"]:
59 fallback[i] = { "en_US": __lng__["en_US"][i] }
60
61 # create fallback dictionary
62 for i in __lng__:
63 dif = 0
64 for j in __lng__[i]:
65 if __lng__[i][j] != __lng__["en_US"][j]:
66 fallback[j][i] = __lng__[i][j]
67 dif = dif + 1
68 print(i, dif)
69
70 # update fallback resource data in this program file
71 import fileinput
72
73 for line in fileinput.input(sys.argv[0], inplace=True):
74 if re.match("^__lng_fallback__", line):
75 print("__lng_fallback__ = {")
76 # break it (CPython has problem with very long Unicode line)
77 for i in fallback:
78 print("'%s':%s," % (i, str(fallback[i])))
79 print("}")
80 sys.exit(1)
81 else:
82 print(line.rstrip("\n")),
83
84if "vnd.sun.star.pathname" in urebootstrap:
85 __lngpath__ = re.sub(r"^vnd.sun.star.pathname:(.*)program(/|\\)fundamental([.]ini|rc)$", "\\1", urebootstrap)
86else:
87 # A way to know if we use MacOs
88 if "Resources" in urebootstrap:
89 __lngpath__ = unohelper.fileUrlToSystemPath(re.sub("fundamentalrc$", "", urebootstrap))
90 else:
91 __lngpath__ = unohelper.fileUrlToSystemPath(re.sub("program/(fundamental.ini|fundamentalrc)$", "share", urebootstrap))
92__lngpath__ = __lngpath__ + "/Scripts/python/LibreLogo/".replace("/", os.sep)
93__translang__ = "am|ca|cs|de|dk|el|en|eo|es|et|fr|hu|it|ja|nl|no|pl|pt|ru|se|sl" # FIXME supported languages for language guessing, expand this list, according to the localizations
94__docs__ = {}
95__prevcode__ = None
96__prevlang__ = None
97__prevcompiledcode__ = None
98__thread__ = None
99__lock__ = threading.Lock()
100__halt__ = False
101__compiled__ = ""
102__group__ = 0
103__groupstack__ = []
104__grouplefthang__ = 0
105__comp__ = {}
106__strings__ = []
107__colors__ = {}
108__COLORS__ = ['BLACK', 0x000000], ['SILVER', 0xc0c0c0], ['GRAY', 0x808080], \
109 ['WHITE', 0xffffff], ['MAROON', 0x800000], ['RED', 0xff0000], \
110 ['PURPLE', 0x800080], ['FUCHSIA', 0xff00ff], ['GREEN', 0x008000], \
111 ['LIME', 0x00ff00], ['OLIVE', 0x808000], ['YELLOW', 0xffff00], \
112 ['NAVY', 0x000080], ['BLUE', 0x0000ff], ['TEAL', 0x008080], \
113 ['AQUA', 0x00ffff], ['PINK', 0xffc0cb], ['TOMATO', 0xff6347], \
114 ['ORANGE', 0xffa500], ['GOLD', 0xffd700], ['VIOLET', 0x9400d3], \
115 ['SKYBLUE', 0x87ceeb], ['CHOCOLATE', 0xd2691e], ['BROWN', 0xa52a2a], \
116 ['INVISIBLE', 0xffffffff]
117__NORMCOLORS__ = [[[255, 255, 0], 0, -11, 1, -11],
118 [[255, 128, 0], 1, 116, 1, -33], [[255, 0, 0], 1, 95, 2, 42],
119 [[255, 0, 255], 2, -213, 0, -106], [[0, 0, 255], 0, 148, 1, 127],
120 [[0, 255, 255], 1, -128, 2, -63], [[0, 255, 0], 2, 192, 0, 244]]
121__STRCONST__ = [i[0] for i in __COLORS__] + ['NONE', 'BEVEL', 'MITER', 'ROUNDED', 'SOLID', 'DASH', 'DOTTED', 'BOLD', 'ITALIC', 'UPRIGHT', 'NORMAL', "HOUR", "PT", "INCH", "MM", "CM"]
122__SLEEP_SLICE_IN_MILLISECONDS__ = 500
123__PT_TO_TWIP__ = 20
124__MM_TO_PT__ = 1/(25.4/72)
125__MM10_TO_TWIP__ = 1/(2540.0/72/20) # 0.01 mm to twentieth point
126__FILLCOLOR__ = 0x8000cc00
127__LINEWIDTH__ = 0.5 * __PT_TO_TWIP__
128__ENCODED_STRING__ = "_s_%s___"
129__ENCODED_COMMENT__ = "_c_%s___"
130__DECODE_STRING_REGEX__ = "_s_([0-9]+)___"
131__DECODE_COMMENT_REGEX__ = "_c_([0-9]+)___"
132__LINEBREAK__ = "#_@L_i_N_e@_#"
133__TURTLE__ = "turtle"
134__ACTUAL__ = "actual"
135__BASEFONTFAMILY__ = "Linux Biolinum G"
136__LineStyle_DOTTED__ = 2
137# LABEL supports font features with the simplified syntax <FEATURE>text</FEATURE>, e.g.
138# LABEL "Small caps: <smcp>text</smcp>"
139# prints "Small caps: TEXT", where TEXT is small capital, if that feature is supported by the font
140# See https://en.wikipedia.org/wiki/List_of_typographic_features
141__match_fontfeatures__ = re.compile( r"(</?)("
142 # OpenType
143 "abvf|abvm|abvs|blwf|blwm|blws|pref|pres|psts|pstf|dist|akhn|haln|half|nukt|rkrf|rphf|vatu|cjct|cfar|"
144 "smpl|trad|tnam|expt|hojo|nlck|jp78|jp83|jp90|jp04|hngl|ljmo|tjmo|vjmo|fwid|hwid|halt|twid|qwid|pwid|palt|pkna|ruby|hkna|vkna|cpct|"
145 "curs|jalt|mset|rclt|rlig|isol|init|medi|med2|fina|fin2|fin3|falt|stch|"
146 "lnum|onum|pnum|tnum|frac|afrc|dnom|numr|sinf|zero|mgrk|flac|dtls|ssty|"
147 "smcp|c2sc|pcap|c2pc|unic|cpsp|case|ital|ordn|"
148 "valt|vhal|vpal|vert|vrt2|vrtr|vkrn|ltra|ltrm|rtla|rtlm"
149 "aalt|swsh|cswh|calt|hist|locl|rand|nalt|cv[0-9][0-9]|salt|ss[01][0-9]|ss20|subs|sups|titl|rvrn|clig|dlig|hlig|liga"
150 "ccmp|kern|mark|mkmk|opbd|lfbd|rtbd|"
151 # Linux Libertine G
152 "size|ornm|ingl|algn|arti|caps|circ|dash|dbls|foot|frsp|grkn|hang|itlc|ligc|minu|nfsp|para|quot|texm|thou|vari)((=.*)?>)", re.IGNORECASE )
153# LABEL localized color tags, e.g. <red>text in red</red>
154__match_localized_colors__ = {}
155# LABEL not localized tags (localized translated to these):
156__match_tags__ = [re.compile(i, re.IGNORECASE) for i in [r'<(b|strong)>', r'</(b|strong)>', r'<(i|em)>', r'</(i|em)>', '<u>', '</u>', r'<(s|del)>', r'</(s|del)>', '<sup>', '</sup>', '<sub>', '</sub>', r'<(fontcolor) ([^<>]*)>', r'</(fontcolor)>', r'<(fillcolor) ([^<>]*)>', r'</(fillcolor)>', r'<(fontfamily) ([^<>]*)>', r'</(fontfamily)>', r'<(fontfeature) ([^<>]*)>', r'</(fontfeature) ?([^<>]*)>', r'<(fontheight) ([^<>]*)>', r'</(fontheight)>']]
157
159 def __init__(self, doc):
160 self.doc = doc
161 self.secure = False
162 try:
163 self.drawpage = doc.DrawPage # Writer
164 except:
165 self.drawpage = doc.DrawPages.getByIndex(0) # Draw, Impress
166 self.shapecache = {}
167 self.shapecount = itertools.count()
168 self.time = 0
169 self.zoomvalue = 0
170 self.lockturtle = False
171 self.fixSVG = False
172 self.initialize()
173
174 def initialize(self):
175 self.pen = 1
176 self.pencolor = 0
177 self.pensize = __LINEWIDTH__
178 self.linestyle = __LineStyle_SOLID__
179 self.linejoint = __ROUNDED__
180 self.linecap = __Cap_NONE__
181 self.oldlc = 0
182 self.oldlw = 0
183 self.oldls = __LineStyle_SOLID__
184 self.oldlj = __ROUNDED__
185 self.oldlcap = __Cap_NONE__
186 self.continuous = True
187 self.areacolor = __FILLCOLOR__
188 self.t10y = int((__FILLCOLOR__ >> 24) / (255.0/100))
189 self.hatch = None
190 self.textcolor = 0
191 self.fontfamily = __BASEFONTFAMILY__
192 self.fontheight = 12
193 self.fontweight = 100
194 self.fontstyle = 0
195 self.points = []
196
197from math import pi, sin, cos, asin, log10, hypot
198
199from com.sun.star.awt import Point as __Point__
200from com.sun.star.awt import Gradient as __Gradient__
201from com.sun.star.awt.GradientStyle import LINEAR as __GradientStyle_LINEAR__
202from com.sun.star.drawing import LineDash as __LineDash__
203from com.sun.star.drawing import Hatch as __Hatch__
204from com.sun.star.drawing import PolyPolygonBezierCoords as __Bezier__
205from com.sun.star.text.TextContentAnchorType import AT_PAGE as __AT_PAGE__
206from com.sun.star.text.WrapTextMode import THROUGH as __THROUGH__
207from com.sun.star.drawing.LineCap import BUTT as __Cap_NONE__
208from com.sun.star.drawing.LineCap import ROUND as __Cap_ROUND__
209from com.sun.star.drawing.LineCap import SQUARE as __Cap_SQUARE__
210from com.sun.star.drawing.LineJoint import NONE as __Joint_NONE__
211from com.sun.star.drawing.LineJoint import BEVEL as __BEVEL__
212from com.sun.star.drawing.LineJoint import MITER as __MITER__
213from com.sun.star.drawing.LineJoint import ROUND as __ROUNDED__
214from com.sun.star.drawing.FillStyle import NONE as __FillStyle_NONE__
215from com.sun.star.drawing.FillStyle import GRADIENT as __FillStyle_GRADIENT__
216from com.sun.star.drawing.LineStyle import NONE as __LineStyle_NONE__
217from com.sun.star.drawing.LineStyle import SOLID as __LineStyle_SOLID__
218from com.sun.star.drawing.LineStyle import DASH as __LineStyle_DASHED__
219from com.sun.star.drawing.DashStyle import RECT as __DashStyle_RECT__
220from com.sun.star.drawing.DashStyle import ROUND as __DashStyle_ROUND__
221from com.sun.star.drawing.DashStyle import ROUNDRELATIVE as __DashStyle_ROUNDRELATIVE__
222from com.sun.star.drawing.CircleKind import FULL as __FULL__
223from com.sun.star.drawing.CircleKind import SECTION as __SECTION__
224from com.sun.star.drawing.CircleKind import CUT as __CUT__
225from com.sun.star.drawing.CircleKind import ARC as __ARC__
226from com.sun.star.awt.FontSlant import NONE as __Slant_NONE__
227from com.sun.star.awt.FontSlant import ITALIC as __Slant_ITALIC__
228from com.sun.star.awt.FontUnderline import SINGLE as __Underline_SINGLE__
229from com.sun.star.awt.FontStrikeout import SINGLE as __Strikeout_SINGLE__
230from com.sun.star.awt import Size as __Size__
231from com.sun.star.awt import WindowDescriptor as __WinDesc__
232from com.sun.star.awt.WindowClass import MODALTOP as __MODALTOP__
233from com.sun.star.awt.VclWindowPeerAttribute import OK as __OK__
234from com.sun.star.awt.VclWindowPeerAttribute import OK_CANCEL as __OK_CANCEL__
235from com.sun.star.awt.VclWindowPeerAttribute import YES_NO_CANCEL as __YES_NO_CANCEL__ # OK_CANCEL, YES_NO, RETRY_CANCEL, DEF_OK, DEF_CANCEL, DEF_RETRY, DEF_YES, DEF_NO
236from com.sun.star.awt.PushButtonType import OK as __Button_OK__
237from com.sun.star.awt.PushButtonType import CANCEL as __Button_CANCEL__
238from com.sun.star.util.MeasureUnit import APPFONT as __APPFONT__
239from com.sun.star.beans import PropertyValue as __property__
240from com.sun.star.lang import Locale
241
242def __getprop__(name, value):
243 p, p.Name, p.Value = __property__(), name, value
244 return p
245
246__uilocale__ = uno.getComponentContext().getValueByName("/singletons/com.sun.star.configuration.theDefaultProvider").\
247 createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess",\
248 (__getprop__("nodepath", "/org.openoffice.Setup/L10N"),)).getByName("ooLocale") + '-' # handle missing Country of locale 'eo'
249
250# dot for dotted line (implemented as an array of dot-headed arrows, because PostScript dot isn't supported by Writer)
252 return [__Point__(round(sin(360.0/n * i * pi/180.0) * 600), round(cos(360.0/n * i * pi/180) * 600)) for i in range(n)]
253__bezierdot__ = __Bezier__()
254__bezierdot__.Coordinates = (tuple(__gendots__(32)),)
255__bezierdot__.Flags = ((0,) * 32,)
256
257# turtle shape
258__TURTLESHAPE__ = [tuple([(__Point__(-120, 130), __Point__(-245, 347), __Point__(-291, 176), ), (__Point__(0, -500), __Point__(126, -375), __Point__(0, -250), __Point__(-124, -375), ), (__Point__(295, 170), __Point__(124, 124), __Point__(250, 340), ), (__Point__(466, -204), __Point__(224, -269), __Point__(71, -180), __Point__(313, -116), ), (__Point__(-75, -175), __Point__(-292, -300), __Point__(-417, -83), ), (__Point__(250, 0), __Point__(0, -250), __Point__(-250, 0), __Point__(0, 250), )] +
259 [(i,) for i in __gendots__(32)] + # single points for wider selection
260 [(__Point__(0, 0),)]), # last point for position handling
261 ((__Point__(0, 0),),)] # hidden turtle (single point to draw at the left border of the page area)
262
264 global __docs__, _
265 doc = XSCRIPTCONTEXT.getDocument()
266 try:
267 _ = __docs__[doc.RuntimeUID]
268 except:
269 _ = __Doc__(doc)
270 __docs__[doc.RuntimeUID] = _
271
272# input function, result: input string or 0
273def Input(s):
274 global __halt__
275 try:
277 smgr = ctx.ServiceManager
278 text = ""
279
280 # dialog
281 d = smgr.createInstanceWithContext("com.sun.star.awt.UnoControlDialogModel", ctx)
282 ps = _.doc.CurrentController.Frame.ContainerWindow.getPosSize()
283 lo = _.doc.CurrentController.Frame.ContainerWindow.convertSizeToLogic(__Size__(ps.Width, ps.Height), __APPFONT__)
284 d.PositionX, d.PositionY, d.Width, d.Height = lo.Width/2 - 75, lo.Height/2 - 25, 150, 50
285
286 # label
287 l = d.createInstance("com.sun.star.awt.UnoControlFixedTextModel" )
288
289 if type(s) == list:
290 text = s[1]
291 s = s[0]
292 l.PositionX, l.PositionY, l.Width, l.Height, l.Name, l.TabIndex, l.Label = 5, 4, 140, 14, "l1", 2, s
293
294 # textbox or combobox
295 e = d.createInstance("com.sun.star.awt.UnoControlEditModel")
296 e.PositionX, e.PositionY, e.Width, e.Height, e.Name, e.TabIndex = 5, 14, 140, 12, "e1", 0
297
298 # buttons
299 b = d.createInstance( "com.sun.star.awt.UnoControlButtonModel" )
300 b.PositionX, b.PositionY, b.Width, b.Height, b.Name, b.TabIndex, b.PushButtonType, b.DefaultButton = 55, 32, 45, 14, "b1", 1, __Button_OK__, True
301 b2 = d.createInstance( "com.sun.star.awt.UnoControlButtonModel" )
302 b2.PositionX, b2.PositionY, b2.Width, b2.Height, b2.Name, b2.TabIndex, b2.PushButtonType = 100, 32, 45, 14, "b2", 1, __Button_CANCEL__
303
304 # insert the control models into the dialog model
305 d.insertByName( "l1", l)
306 d.insertByName( "b1", b)
307 d.insertByName( "b2", b2)
308 d.insertByName( "e1", e)
309
310 # create the dialog control and set the model
311 controlContainer = smgr.createInstanceWithContext("com.sun.star.awt.UnoControlDialog", ctx)
312 controlContainer.setModel(d)
313
314 # create a peer
315 toolkit = smgr.createInstanceWithContext("com.sun.star.awt.ExtToolkit", ctx)
316 controlContainer.setVisible(False)
317 controlContainer.createPeer(toolkit, None)
318
319 # execute it
320 inputtext = controlContainer.execute()
321 if inputtext:
322 inputtext = e.Text
323 else:
324 # Cancel button
325 __halt__ = True
326
327 # dispose the dialog
328 controlContainer.dispose()
329 # stop program at pressing Cancel
331 return inputtext
332 except Exception:
333 __trace__()
334
335def __string__(s, decimal = None): # convert decimal sign, localized BOOL and SET
336 if not decimal:
337 decimal = _.decimal
338 if decimal == ',' and type(s) == float:
339 return str(s).replace(".", ",")
340 if type(s) in [list, tuple, dict, set]:
341 __strings__ = []
342 s = re.sub("(?u)(['\"])(([^'\"]|\\['\"])*)(?<!\\\\)\\1", __encodestring__, str(s)) # XXX fix double '\'\"'
343 if decimal == ',':
344 s = s.replace(".", ",")
345 return re.sub(__DECODE_STRING_REGEX__, __decodestring__, \
346 s.replace('set', __locname__('SET')).replace('True', __locname__('TRUE')).replace('False', __locname__('FALSE')))
347 if type(s) in [str]:
348 return s
349 elif type(s) == bool:
350 return __locname__(str(s).upper())
351 return str(s)
352
353def Print(s):
354 global __halt__
355 s = __string__(s, _.decimal)
356 if not MessageBox(_.doc.CurrentController.Frame.ContainerWindow, s[:500] + s[500:5000].replace('\n', ' '), "", "messbox", __OK_CANCEL__):
357 # stop program at pressing Cancel
358 __halt__ = True
360
361def MessageBox(parent, message, title, msgtype = "messbox", buttons = __OK__):
362 msgtypes = ("messbox", "infobox", "errorbox", "warningbox", "querybox")
363 if not (msgtype in msgtypes):
364 msgtype = "messbox"
365 d = __WinDesc__()
366 d.Type = __MODALTOP__
367 d.WindowServiceName = msgtype
368 d.ParentIndex = -1
369 d.Parent = parent
370 d.WindowAttributes = buttons
371 tk = parent.getToolkit()
372 msgbox = tk.createWindow(d)
373 msgbox.MessageText = message
374 if title:
375 msgbox.CaptionText = title
376 return msgbox.execute()
377
378def Random(r):
379 try:
380 return r * random.random()
381 except:
382 return list(r)[int(random.random() * len(r))]
383
384def to_ascii(s):
385 return s.encode("unicode-escape").decode("utf-8").replace("\\u", "__u__").replace(r"\x", "__x__")
386
388 return bytes(s.replace("__x__", r"\x").replace("__u__", "\\u"), "ascii").decode("unicode-escape")
389
390def __locname__(name, l = -1):
391 if l == -1:
392 l = _.lng
393 for i in __l12n__(l):
394 if i == name.upper():
395 return __l12n__(l)[i].split("|")[0] # return with the first localized name
396 return to_unicode(name)
397
398def __getcursor__(fulltext):
399 realselection = False
400 try:
401 text = _.doc.getCurrentController().getViewCursor().getText().createTextCursor() # copy selection (also in frames)
402 text.gotoRange(_.doc.getCurrentController().getViewCursor(), False)
403 if fulltext:
404 1/len(text.getString()) # exception, if zero length
405 realselection = True
406 except:
407 text = _.doc.getText().createTextCursorByRange(_.doc.getText().getStart())
408 text.gotoEnd(True)
409 return text, realselection
410
411def __translate__(arg = None):
412 global _
414 selection = __getcursor__(True)[0]
417 # detect language
418 text = selection.getString()
419 # remove comments and strings
420 text = re.sub(r"[ ]*;[^\n]*", "", re.sub(r"['„“‘«»「][^\n'”“‘’«»」]*['”“‘’«»」]", "", re.sub(r"^[ \t]*[;#][^\n]*", "", text)))
421 text = " ".join(set(re.findall(r"(?u)\w+", text)) - set(re.findall(r"(?u)\w*\d+\w*", text))).lower() # only words
423 guess = ctx.ServiceManager.createInstanceWithContext("com.sun.star.linguistic2.LanguageGuessing", ctx)
424 guess.disableLanguages(guess.getEnabledLanguages())
425 guess.enableLanguages(tuple([Locale(i, "", "") for i in __translang__.split("|")]))
426 guess = guess.guessPrimaryLanguage(text, 0, len(text))
427 try:
428 l = {'cs': 'cs_CZ', 'el': 'el_GR', 'en': 'en_US', 'pt': 'pt_BR'}[guess.Language]
429 except:
430 l = guess.Language + '_' + guess.Language.upper()
431 lang = __l12n__(l)
432 if not lang:
433 lang = __l12n__(guess.Language)
434 if not lang:
435 lang = __l12n__(_.lng)
436 if not lang:
437 lang = __l12n__("en_US")
438 lq = '\'' + lang['LEFTSTRING'].replace("|", "")
439 rq = '\'' + lang['RIGHTSTRING'].replace("|", "")
440 __strings__ = []
441
442 text = re.sub(r"^(([ \t]*[;#][^\n]*))", __encodecomment__, text)
443 text = re.sub("(?u)([%s])((?:[^\n%s]|\\\\[%s])*)(?<!\\\\)[%s]" % (lq, rq, rq, rq), __encodestring__, selection.getString())
444 text = re.sub(r'(?u)(?<![0-9])(")(~?\w*)', __encodestring__, text)
445 text = re.sub(r";(([^\n]*))", __encodecomment__, text)
446
447 # translate the program to the language of the document FIXME space/tab
448 exception = ['DECIMAL']
449 in1 = lang['IN'].upper()
450 in2 = __l12n__(_.lng)['IN'].split("|")[0].upper()
451 if in1[0] == '-' and in2[0] != '-': # "for x y-in" -> "for x in y"
452 exception += ['IN']
453 text = re.sub(r"(?ui)\b((?:%s) +:?\w+) +([^\n]+)(?:%s) +(?=[\[] |[\[]\n)" % (lang['FOR'], in1), "\\1 %s \\2 " % in2, text)
454 text = re.sub(r"(?ui)(:?\b\w+|[\[][^[\n]*])\b(?:%s)\b" % in1, "%s \\1" % in2, text)
455 elif in1[0] != '-' and in2[0] == '-': # "for x in y" -> "for x y-in"
456 exception += ['IN']
457 text = re.sub(r"(?ui)(?<=\n)((?:%s)\b +:?\w+) +(?:%s) +([^\n]+?) +(?=[\[] |[\[]\n)" % (lang['FOR'], in1), "\\1 \\2%s " % in2, text)
458 text = re.sub(r"(?ui)(?<!:)\b(?:%s) +(:?\b\w+|[\[][^[\n]*])\b" % in1, "\\1%s" % in2, text)
459 for i in set(lang) - set(exception):
460 text = re.sub(r'(?ui)(?<!:)\b(%s)\b' % lang[i], __l12n__(_.lng)[i].split("|")[0].upper(), text)
461 text = re.sub(r"(?<=\d)[%s](?=\d)" % lang['DECIMAL'], __l12n__(_.lng)['DECIMAL'], text)
462
463 # decode strings and comments
464 quoted = u"(?ui)(?<=%s)(%%s)(?=%s)" % (__l12n__(_.lng)['LEFTSTRING'][0], __l12n__(_.lng)['RIGHTSTRING'][0])
465 text = re.sub(__DECODE_STRING_REGEX__, __decodestring2__, text)
466 for i in __STRCONST__:
467 text = re.sub(quoted % lang[i], __l12n__(_.lng)[i].split("|")[0].upper(), text)
468 text = re.sub(__DECODE_COMMENT_REGEX__, __decodecomment__, text)
469 if _.doc.getText().compareRegionStarts(selection.getStart(), _.doc.getText().getStart()) == 0:
470 pagebreak = True
471 selection.setString("\n" + text.lstrip("\n"))
472 else:
473 pagebreak = False
474 selection.setString(text)
475 # convert to paragraphs
476 __dispatcher__(".uno:ExecuteSearch", (__getprop__("SearchItem.SearchString", r"\n"), __getprop__("SearchItem.ReplaceString", r"\n"), \
477 __getprop__("Quiet", True), __getprop__("SearchItem.Command", 3), __getprop__("SearchItem.StyleFamily", 2), \
478 __getprop__("SearchItem.AlgorithmType", 1), __getprop__("SearchItem.AlgorithmType2", 2), __getprop__("SearchItem.SearchFlags", 0)))
479 # set 2-page layout
480 if pagebreak:
481 selection.getStart().BreakType = 4
482 __dispatcher__(".uno:ZoomPage")
483
485 return __time__.process_time() - _.start_time
486
487class LogoProgram(threading.Thread):
488 def __init__(self, code):
489 self.code = code
490 threading.Thread.__init__(self)
491
492 def secure(self):
493 # 0 = secure
494 if _.secure:
495 return 0
496
497 # 1 = forms, fields or embedded objects are forbidden
498 if _.doc.DrawPage.Forms.getCount() > 0 or _.doc.getTextFields().createEnumeration().hasMoreElements() or _.doc.getEmbeddedObjects().getCount() > 0:
499 return 1
500
501 # 2 = hyperlinks with script events
502 nodes = _.doc.Text.createEnumeration()
503 while nodes.hasMoreElements():
504 node = nodes.nextElement()
505 if node.supportsService("com.sun.star.text.Paragraph"):
506 portions = node.createEnumeration()
507 while portions.hasMoreElements():
508 portion = portions.nextElement()
509 if portion.PropertySetInfo.hasPropertyByName("HyperLinkEvents"):
510 events = portion.getPropertyValue("HyperLinkEvents")
511 for event in events.getElementNames():
512 attributes = events.getByName(event)
513 for attribute in attributes:
514 if attribute.Name == "EventType" and attribute.Value == "Script":
515 return 2
516
517 # 2 = images with script events
518 images = _.doc.DrawPage.createEnumeration()
519 while images.hasMoreElements():
520 image = images.nextElement()
521 try:
522 events = image.Events
523 for event in events.getElementNames():
524 attributes = events.getByName(event)
525 for attribute in attributes:
526 if attribute.Name == "EventType" and attribute.Value == "Script":
527 return 2
528 except:
529 pass
530
531 _.secure = True
532 return 0
533
534 def run(self):
535 global __thread__
536 try:
537 # check document security
538 secid = self.secure()
539 if secid > 0:
540 parent = _.doc.CurrentController.Frame.ContainerWindow
541 MessageBox(parent, "Document objects with%s script events" % [" possible", ""][secid-1], "LibreLogo program can't start", "errorbox")
542 else:
543 _.fixSVG = False
544 _.start_time = __time__.process_time()
545 exec(self.code)
546 __unlock__(all_levels = True)
547 if _.origcursor[0] and _.origcursor[1]:
548 __dispatcher__(".uno:Escape")
549 try:
550 _.doc.CurrentController.getViewCursor().gotoRange(_.origcursor[0], False)
551 except:
552 _.doc.CurrentController.getViewCursor().gotoRange(_.origcursor[0].getStart(), False)
553 except Exception as e:
554 try:
555 __unlock__(all_levels = True)
556 TRACEPATTERN = '"<string>", line '
557 message = traceback.format_exc()
558 l = re.findall(TRACEPATTERN + '[0-9]+', message)
559 if len(l) > 0 and not "SystemExit" in message:
560 line = len(re.findall(__LINEBREAK__, ''.join(self.code.split("\n")[:int(l[-1][len(TRACEPATTERN):])]))) + 1
561 caption = __l12n__(_.lng)['LIBRELOGO']
562 if __prevcode__ and "\n" in __prevcode__:
563 __gotoline__(line)
564 caption = __l12n__(_.lng)['ERROR'] % line
565 parent = _.doc.CurrentController.Frame.ContainerWindow
566 if "maximum recursion" in message:
567 MessageBox(parent, __l12n__(_.lng)['ERR_STOP'] + " " + __l12n__(_.lng)['ERR_MAXRECURSION'] % sys.getrecursionlimit(), __l12n__(_.lng)['LIBRELOGO'])
568 elif "cannot initialize memory" in message or "Couldn't instantiate" in message:
569 MessageBox(parent, __l12n__(_.lng)['ERR_STOP'] + " " + __l12n__(_.lng)['ERR_MEMORY'], __l12n__(_.lng)['LIBRELOGO'])
570 elif "ZeroDivisionError" in message:
571 MessageBox(parent, __l12n__(_.lng)['ERR_ZERODIVISION'], caption, "errorbox")
572 elif "IndexError" in message:
573 MessageBox(parent, __l12n__(_.lng)['ERR_INDEX'], caption, "errorbox")
574 elif "KeyError" in message:
575 MessageBox(parent, __l12n__(_.lng)['ERR_KEY'] % eval(re.search("KeyError: ([^\n]*)", message).group(1)), caption, "errorbox")
576 elif "NameError" in message:
577 if "__repeat__" in message:
578 MessageBox(parent, __l12n__(_.lng)['ERR_ARGUMENTS'] % (__locname__('REPEAT'), 1, 0), caption, "errorbox")
579 else:
580 MessageBox(parent, __l12n__(_.lng)['ERR_NAME'] % \
581 to_unicode(re.search(r"(?<=name ')[\w_]*(?=')", message).group(0)), caption, "errorbox")
582 elif "TypeError" in message and "argument" in message and "given" in message:
583 r = re.search(r"([\w_]*)[(][)][^\n]* (\w+) arguments? [(](\d+)", message) # XXX later: handle 'no arguments' + plural
584 MessageBox(parent, __l12n__(_.lng)['ERR_ARGUMENTS'] % (__locname__(r.group(1)), r.group(2), r.group(3)), caption, "errorbox")
585 else:
586 origline = __compiled__.split("\n")[line-1]
587 if not "com.sun.star" in message and not "__repeat__" in message and not "*)" in message and ("[" in origline or "]" in origline):
588 MessageBox(parent, __l12n__(_.lng)['ERR_BLOCK'], caption, "errorbox")
589 else:
590 MessageBox(parent, __l12n__(_.lng)['ERROR'] %line, __l12n__(_.lng)['LIBRELOGO'], "errorbox")
591 __trace__()
592 except:
593 pass
594 with __lock__:
595 __thread__ = None
596
597# to check LibreLogo program termination (in that case, return value is False)
599 return __thread__ != None
600
602 __strings__.append(re.sub("(\\[^\\]|\\\\(?=[‘’“”»」』]))", "", m.group(2)))
603 # replace the string with the numbered identifier _s_0___, _s_1___, ...
604 return __ENCODED_STRING__ % (len(__strings__) - 1)
605
607 __strings__.append(re.sub("\\[^\\]", "", m.group(2)))
608 return __ENCODED_COMMENT__ % (len(__strings__) - 1)
609
611 return "u'%s'" % __strings__[int(m.group(1))]
612
614 return __l12n__(_.lng)['LEFTSTRING'][0] + __strings__[int(m.group(1))] + __l12n__(_.lng)['RIGHTSTRING'][0]
615
617 return ";" + __strings__[int(m.group(1))]
618
620 global __halt__, __thread__
622 _.zoomvalue = _.doc.CurrentController.getViewSettings().ZoomValue
623 shape = __getshape__(__TURTLE__)
624 if not shape:
625 shape = _.doc.createInstance( "com.sun.star.drawing.PolyPolygonShape" )
626 shape.AnchorType = __AT_PAGE__
627 shape.TextWrap = __THROUGH__
628 shape.Opaque = True
629 _.drawpage.add(shape)
630 shape.PolyPolygon = __TURTLESHAPE__[0]
631 _.shapecache[__TURTLE__] = shape
632 shape.Name = __TURTLE__
633 _.initialize()
634 turtlehome()
635 _.doc.CurrentController.select(shape)
636 shape.FillColor, transparence = __splitcolor__(_.areacolor, shape)
637 shape.LineColor, shape.LineTransparence = __splitcolor__(_.pencolor)
638 elif shape.Visible:
639 if shape.FillStyle == __FillStyle_NONE__:
640 _.areacolor = 0xffffffff
641 else:
642 _.areacolor = shape.FillColor + (int(255.0 * shape.FillTransparence/100) << 24)
643 if shape.LineWidth != round((1 + _.pen * 2) * __PT_TO_TWIP__ / __MM10_TO_TWIP__) and shape.LineWidth != round(__LINEWIDTH__ / __MM10_TO_TWIP__):
644 _.pensize = shape.LineWidth * __MM10_TO_TWIP__
645 if shape.LineStyle == __LineStyle_NONE__: # - none -
646 __pen__(0)
647 else:
648 if shape.LineStyle == __LineStyle_SOLID__:
649 __pen__(1)
650 _.pencolor = shape.LineColor + (int(255.0 * shape.LineTransparence/100) << 24)
651 shape.LineJoint = __ROUNDED__
652 shape.Shadow = True
653 shape.FillColor, transparence = __splitcolor__(_.areacolor, shape)
654 shape.FillTransparence = min(95, transparence)
655 shape.ShadowColor, shape.ShadowTransparence, shape.ShadowXDistance, shape.ShadowYDistance = (0, 20, 0, 0)
656 shape.LineWidth = min(_.pensize, (1 + _.pen * 2) * __PT_TO_TWIP__) / __MM10_TO_TWIP__
657 shape.SizeProtect = True
658
659def pagesize(n = -1):
660 if n == -1:
661 ps = _.doc.CurrentController.getViewCursor().PageStyleName
662 page = _.doc.StyleFamilies.getByName("PageStyles").getByName(ps)
663 return [page.Width * __MM10_TO_TWIP__ / __PT_TO_TWIP__, page.Height * __MM10_TO_TWIP__ / __PT_TO_TWIP__]
664 return None
665
667 turtle = __getshape__(__TURTLE__)
668 if turtle:
669 ps = _.doc.CurrentController.getViewCursor().PageStyleName
670 page = _.doc.StyleFamilies.getByName("PageStyles").getByName(ps)
671 turtle.setPosition(__Point__((page.Width - turtle.BoundRect.Width)/2, (page.Height - turtle.BoundRect.Height)/2))
672 turtle.LineStyle = __LineStyle_SOLID__
673 turtle.LineJoint = __MITER__
674 turtle.LineWidth = min(_.pensize, (1 + _.pen * 2) * __PT_TO_TWIP__) / __MM10_TO_TWIP__
675 turtle.LineColor, none = __splitcolor__(_.pencolor)
676 turtle.LineTransparence = 25
677 turtle.RotateAngle = 0
678 turtle.ZOrder = 1000
679
680def __pen__(n):
681 _.pen = n
682 turtle = __getshape__(__TURTLE__)
683 if turtle:
684 if n:
685 turtle.LineStyle = __LineStyle_SOLID__
686 turtle.LineWidth = min(_.pensize, 3 * __PT_TO_TWIP__) / __MM10_TO_TWIP__
687 else:
688 turtle.LineStyle = __LineStyle_DASHED__
689 turtle.LineDash = __LineDash__(__DashStyle_RECT__, 0, 0, 1, __PT_TO_TWIP__, __PT_TO_TWIP__)
690 turtle.LineWidth = min(_.pensize, __PT_TO_TWIP__) / __MM10_TO_TWIP__
691
692
693def __visible__(shape, visible = -1): # for OOo 3.2 compatibility
694 try:
695 if visible == -1:
696 return shape.Visible
697 shape.Visible = visible
698 except:
699 return True
700
702 turtle = __getshape__(__TURTLE__)
703 if turtle and turtle.Visible:
704 z = turtle.getPosition()
705 z = __Point__(z.X + turtle.BoundRect.Width / 2.0, z.Y + turtle.BoundRect.Height / 2.0)
706 turtle.PolyPolygon = __TURTLESHAPE__[1]
707 __visible__(turtle, False)
708 turtle.LineTransparence, turtle.FillTransparence = 100, 100 # for saved files
709 turtle.setPosition(z)
710 else:
711 # HIDETURTLE during locking, no need SHOWTURTLE at the end of locking
712 _.lockturtle = False
713 __dispatcher__(".uno:Escape")
714
716 turtle = __getshape__(__TURTLE__)
717 if turtle and not turtle.Visible:
718 if not turtle.Parent:
719 _.drawpage.add(turtle)
720 z = turtle.getPosition()
721 r, turtle.RotateAngle = turtle.RotateAngle, 0
722 turtle.PolyPolygon, turtle.RotateAngle = __TURTLESHAPE__[0], r
723 z = __Point__(z.X - turtle.BoundRect.Width / 2.0, z.Y - turtle.BoundRect.Height / 2.0)
724 turtle.setPosition(z)
725 __visible__(turtle, True)
726 pencolor(_.pencolor)
727 fillcolor(_.areacolor)
728 pensize(_.pensize/__PT_TO_TWIP__)
729 _.doc.CurrentController.select(__getshape__(__TURTLE__))
730 elif not turtle:
732
733def left(arg=None):
734 if __thread__:
735 return None
737 turtle = uno.getComponentContext().ServiceManager.createInstance('com.sun.star.drawing.ShapeCollection')
738 turtle.add(__getshape__(__TURTLE__))
739 _.doc.CurrentController.select(turtle)
740 rotate(__TURTLE__, 1500)
741 return None
742
743def right(arg=None):
744 if __thread__:
745 return None
747 turtle = uno.getComponentContext().ServiceManager.createInstance('com.sun.star.drawing.ShapeCollection')
748 turtle.add(__getshape__(__TURTLE__))
749 _.doc.CurrentController.select(turtle)
750 rotate(__TURTLE__, -1500)
751 return None
752
753def goforward(arg=None):
754 if __thread__:
755 return None
757 turtle = uno.getComponentContext().ServiceManager.createInstance('com.sun.star.drawing.ShapeCollection')
758 turtle.add(__getshape__(__TURTLE__))
759 _.doc.CurrentController.select(turtle)
760 forward(10)
761 return None
762
763def gobackward(arg=None):
764 if __thread__:
765 return None
767 turtle = uno.getComponentContext().ServiceManager.createInstance('com.sun.star.drawing.ShapeCollection')
768 turtle.add(__getshape__(__TURTLE__))
769 _.doc.CurrentController.select(turtle)
770 backward(10)
771 return None
772
773def commandline(arg=None, arg2=None):
774 run(arg, arg2)
775
777 global _
778 c = _.doc.CurrentController.getViewCursor()
779 locs = [i for i in [c.CharLocale, c.CharLocaleAsian, c.CharLocaleComplex] if i.Language != 'zxx'] # not None language
780 # FIXME-BCP47: this needs adaptation to language tags, a simple split on
781 # '-' and assuming second field would be country would already fail if
782 # a script tag was present.
783 loc = Locale(__uilocale__.split('-')[0], __uilocale__.split('-')[1], '')
784 if locs and loc not in locs:
785 loc = locs[0]
786 _.lng = loc.Language + '_' + loc.Country
787 if not __l12n__(_.lng):
788 _.lng = loc.Language
789 if not __l12n__(_.lng):
790 _.lng = "en_US"
791
792def run(arg=None, arg2 = -1):
793 global _, __thread__, __halt__, _, __prevcode__, __prevlang__, __prevcompiledcode__
794 if __thread__:
795 return None
796 with __lock__:
797 __thread__ = 1
798 try:
800 _.origcursor = [None, None]
801 if arg2 == -1:
802 _.origcursor, _.cursor = __getcursor__(False), __getcursor__(True)[0]
803 __dispatcher__(".uno:Escape")
804 c = _.doc.Text.createTextCursor() # go to the first page
805 c.gotoStart(False)
806 _.doc.CurrentController.getViewCursor().gotoRange(c, False)
809 arg2 = _.cursor.getString()
810 if len(arg2) > 20000:
811 if MessageBox(_.doc.CurrentController.Frame.ContainerWindow, __l12n__(_.lng)['ERR_NOTAPROGRAM'], __l12n__(_.lng)['LIBRELOGO'], "querybox", __YES_NO_CANCEL__) != 2:
812 with __lock__:
813 __thread__ = None
814 return None
815 elif len(arg2) == 0 and _.origcursor[1]:
816 _.origcursor[0].setString("fontcolor 'green'\nlabel 'LIBRE'\npu\nback 30\npic [\n\tfc any\n\tcircle 40\n\tfontcolor 'black'\n\tlabel 'LOGO'\n\tleft 180\n\tfd 20\n\tpd\n\tpc any\n\tps 1\n\tfd 40\n\trepeat 20 [\n\t\tfd repcount*2\n\t\trt 90\n\t]\n]\npu pos any pd")
818 _.origcursor, _.cursor = __getcursor__(False), __getcursor__(True)[0]
819 arg2 = _.cursor.getString()
820 else:
823 if __prevcode__ and __prevcode__ == arg2 and __prevlang__ == _.lng:
824 __thread__ = LogoProgram(__prevcompiledcode__)
825 else:
826 __prevcode__ = arg2
827 __prevlang__ = _.lng
828 __prevcompiledcode__ = __compil__(arg2)
829 __thread__ = LogoProgram(__prevcompiledcode__)
830 __halt__ = False
831 turtle = uno.getComponentContext().ServiceManager.createInstance('com.sun.star.drawing.ShapeCollection')
832 turtle.add(__getshape__(__TURTLE__))
833 _.doc.CurrentController.select(turtle)
834 # set working directory for file operations
835 if _.doc.hasLocation():
836 name = os.chdir(unohelper.fileUrlToSystemPath(re.sub("[^/]*$", "", _.doc.getURL())))
837 else:
838 name = os.chdir(os.path.expanduser('~'))
839 __thread__.start()
840 except Exception as e:
841 __thread__ = None
842 __trace__()
843 return None
844
845def __unlock__(all_levels):
846 while _.doc.hasControllersLocked():
847 # show turtle which was hidden by locking
848 if _.lockturtle:
849 showturtle()
850 _.doc.unlockControllers()
851 if not all_levels:
852 break
853 if not _.doc.hasControllersLocked() and _.lockturtle:
854 _.lockturtle = False
855 elif _.doc.hasControllersLocked() and _.lockturtle:
856 hideturtle()
857
858def stop(arg=None):
859 global __halt__
860 with __lock__:
861 __halt__ = True
862 __unlock__(all_levels = True)
863 return None
864
865def home(arg=None):
866 if __thread__:
867 return None
869 turtle = __getshape__(__TURTLE__)
870 if turtle:
871 __removeshape__(__TURTLE__)
872 _.drawpage.remove(turtle)
874 __dispatcher__(".uno:Escape")
875 if not __halt__:
876 return None
877 _.pencolor = 0
878 _.pensize = __LINEWIDTH__
879 _.areacolor = __FILLCOLOR__
880 pen = 1
881 __removeshape__(__ACTUAL__)
882
883def clearscreen(arg=None):
884 if __thread__:
885 return None
887 turtle = __getshape__(__TURTLE__)
888 if not turtle:
890 if not __halt__:
891 # avoid unintentional image deletion in large documents
892 if len(__getcursor__(True)[0].getString()) < 5000:
893 __cs__(False)
894 return
895 __cs__(False)
896 __dispatcher__(".uno:Escape")
897
899 global __thread__, __halt__
900 if __halt__:
901 with __lock__:
902 __thread__ = None
903 sys.exit()
904
905def __cs__(select = True):
906 turtle = __getshape__(__TURTLE__)
907 visible = False
908 if turtle and turtle.Visible:
909 __visible__(turtle, False)
910 visible = True
911 if _.doc.CurrentController.select(_.drawpage) and \
912 _.doc.CurrentController.getSelection().ImplementationName == "com.sun.star.drawing.SvxShapeCollection":
913 __dispatcher__(".uno:Delete")
914 if turtle and visible:
915 __visible__(turtle, True)
916 if select:
917 _.doc.CurrentController.select(_.drawpage)
918
919def __dispatcher__(s, properties = (), doc = 0):
920 ctx = XSCRIPTCONTEXT.getComponentContext()
921 d = ctx.ServiceManager.createInstanceWithContext("com.sun.star.frame.DispatchHelper", ctx)
922 if doc != 0:
923 d.executeDispatch(doc.CurrentController.Frame, s, "", 0, properties)
924 else:
925 d.executeDispatch(_.doc.CurrentController.Frame, s, "", 0, properties)
926
927def __getshape__(shapename):
928 try:
929 if _.shapecache[shapename].Parent:
930 return _.shapecache[shapename]
931 _.shapecache.pop(shapename)
932 except:
933 pass
934 return None
935
936def __angle__(deg):
937 if deg == u'any':
938 return random.random() * 36000
939 return deg * 100
940
941def turnleft(deg):
942 rotate(__TURTLE__, __angle__(deg))
943
944def turnright(deg):
945 rotate(__TURTLE__, -__angle__(deg))
946
947def heading(deg = -1, go = False):
948 turtle = __getshape__(__TURTLE__)
949 if deg == -1:
950 return -turtle.RotateAngle / 100 + 360
951 else:
952 if deg == u'any':
953 turtle.RotateAngle = random.random() * 36000
954 elif type(deg) == list:
955 pos = turtle.getPosition()
956 px, py = pos.X + turtle.BoundRect.Width / 2.0, pos.Y + turtle.BoundRect.Height / 2.0
957 dx = px * __MM10_TO_TWIP__ - deg[0] * __PT_TO_TWIP__
958 dy = deg[1] * __PT_TO_TWIP__ - py * __MM10_TO_TWIP__
959 n = hypot(dx, dy)
960 if dy > 0 and n > 0:
961 turtle.RotateAngle = a = -(180 + asin(dx / n) / (pi/180)) * 100 + 72000 # +720 for max(angle, preciseAngle) of __go__()
962 elif n > 0:
963 turtle.RotateAngle = a = asin(dx / n) / (pi/180) * 100 + 72000
964 if go and n > 0:
965 __go__(__TURTLE__, -n, False, a)
966 else:
967 turtle.RotateAngle = -deg * 100
968
969def rotate(shapename, deg):
970 shape = __getshape__(shapename)
971 if shape:
972 shape.RotateAngle = shape.RotateAngle + deg
973
974def forward(n):
975 if type(n) == list:
976 pos = position()
977 angle = heading()
978 dx = n[1] * sin((pi/180) * angle) + n[0] * sin((pi/180)*(angle + 90))
979 dy = n[1] * cos((pi/180) * angle) + n[0] * cos((pi/180)*(angle + 90))
980 position([pos[0] + dx, pos[1] - dy])
981 elif type(n) == str:
982 siz = label([1, 1, n])
983 shape = __getshape__(__ACTUAL__)
984 pos = position()
985 angle = heading()
986 w, h = siz.Width / (__PT_TO_TWIP__ / __MM10_TO_TWIP__), siz.Height / (__PT_TO_TWIP__ / __MM10_TO_TWIP__)
987 dx = 0 * sin((pi/180) * (angle)) + w * sin((pi/180)*(angle + 90))
988 dy = 0 * cos((pi/180) * (angle)) + w * cos((pi/180)*(angle + 90))
989 position([pos[0] + dx, pos[1] - dy])
990 heading(angle)
991 else:
992 __go__(__TURTLE__, -n * __PT_TO_TWIP__)
993
994def backward(n):
995 if type(n) == list:
996 forward([-n[0], -n[1]])
997 turnright(180)
998 else:
999 __go__(__TURTLE__, n * __PT_TO_TWIP__)
1000
1001def __dots__(n, pos, dx, dy, r = -1, q = 0): # dots for dotted polyline or circle
1002 f = [1, 4, 4, 4, 4][q]
1003 k = abs(int(1.0 * n / max(20, _.pensize) / 2.0 / f))
1004 dots = []
1005 px, py = pos.X, pos.Y
1006 for i in range(k + 1):
1007 if k > 0:
1008 if r != -1:
1009 px, py = pos.X + sin(((f-1)*(q-1)*30 + 360.0/f/k * i) * pi/180.0) * r[0], pos.Y + cos(((f-1)*(q-1)*30 + 360.0/f/k * i) * pi/180) * r[1]
1010 else:
1011 px, py = pos.X + round(i * dx/k), pos.Y + round(i * dy/k)
1012 dots += [(__Point__(px, py), __Point__(px + 7, py + 7))]
1013 return dots
1014
1015def __draw__(d, count = True):
1016 shape = _.doc.createInstance( "com.sun.star.drawing." + d)
1017 shape.AnchorType = __AT_PAGE__
1018 shape.TextWrap = __THROUGH__
1019 __visible__(shape, False)
1020 while __zoom__(): # temporary fix program halt with continuous zoom
1021 while __zoom__():
1022 __time__.sleep(0.2)
1023 __time__.sleep(0.2)
1024 _.drawpage.add(shape)
1025 if __group__ != 0:
1026 __group__.add(shape)
1027 if count:
1028 _.shapecache[next(_.shapecount)] = str(_.time)
1029 return shape
1030
1032 z = _.doc.CurrentController.getViewSettings().ZoomValue
1033 if z != _.zoomvalue:
1034 _.zoomvalue = z
1035 return True
1036 return False
1037
1038def __lefthang__(shape):
1039 global __grouplefthang__
1040 if __group__ != 0:
1041 p = shape.getPosition()
1042 if p.X < __grouplefthang__:
1043 __grouplefthang__ = p.X
1044
1045def __go__(shapename, n, dot = False, preciseAngle = -1):
1046 turtle = __getshape__(shapename)
1047 turtlepos = None
1048 if shapename == __TURTLE__:
1049 try:
1050 turtlepos = turtle.PolyPolygon[-1][-1]
1051 except:
1052 pass
1053 pos = turtle.getPosition()
1054 dx = n * sin((pi/180)*(max(turtle.RotateAngle, preciseAngle)/100))
1055 dy = n * cos((pi/180)*(max(turtle.RotateAngle, preciseAngle)/100))
1056 turtle.setPosition(__Point__(pos.X + dx / __MM10_TO_TWIP__, pos.Y + dy / __MM10_TO_TWIP__))
1057 if (_.pencolor != _.oldlc or _.pensize != _.oldlw or _.linestyle != _.oldls or _.linejoint != _.oldlj or _.linecap != _.oldlcap):
1058 __removeshape__(__ACTUAL__)
1059 shape = None
1060 else:
1061 shape = __getshape__(__ACTUAL__)
1062 _.oldlw = _.pensize
1063 _.oldlc = _.pencolor
1064 _.oldls = _.linestyle
1065 _.oldlj = _.linejoint
1066 _.oldlcap = _.linecap
1067 if shape and not _.pen and not dot:
1068 _.continuous = False
1069 return
1070 c, c2 = __Point__(pos.X + turtle.BoundRect.Width / 2.0, pos.Y + turtle.BoundRect.Height / 2.0), __Point__(round(dx / __MM10_TO_TWIP__), round(dy / __MM10_TO_TWIP__))
1071 if shape and "LineShape" in shape.ShapeType:
1072 if _.continuous or dot:
1073 last = shape.PolyPolygon[-1][-1]
1074 if not (turtlepos and (abs(last.X - turtlepos.X) > 100 or abs(last.Y - turtlepos.Y) > 100) and
1075 (__group__ == 0 or (shape.getPosition().X > 0 and turtle.getPosition().X > 0))): # picture [ ] keeps hanging shapes
1076 if dot or _.linestyle == __LineStyle_DOTTED__:
1077 shape.PolyPolygon = tuple( list(shape.PolyPolygon) + __dots__(n, turtlepos, dx, dy))
1078 else:
1079 last.X = last.X + c2.X
1080 last.Y = last.Y + c2.Y
1081 shape.PolyPolygon = tuple( list(shape.PolyPolygon[:-1]) + [tuple( list(shape.PolyPolygon[-1]) + [last])])
1082 __lefthang__(shape)
1083 return
1084 elif turtlepos:
1085 shape.PolyPolygon = tuple( list(shape.PolyPolygon) + [(turtlepos, __Point__(turtlepos.X + c2.X, turtlepos.Y + c2.Y))])
1086 _.continuous = True
1087 __lefthang__(shape)
1088 return
1089 if not _.pen and not dot:
1090 return
1091 if _.pen and not dot:
1092 _.points = [] # new line drawing: forget the points
1093 shape = __draw__("PolyLineShape")
1094 shape.RotateAngle = 0
1095 shape.PolyPolygon = tuple([tuple([__Point__(0, 0)])])
1096 shape.setPosition(c)
1097 last = shape.PolyPolygon[-1][-1]
1098 last2 = __Point__(last.X + c2.X, last.Y + c2.Y)
1099 shape.LineStyle, shape.LineDash = __linestyle__(_.linestyle)
1100 shape.LineJoint = _.linejoint
1101 shape.LineCap = _.linecap
1102 if dot or _.linestyle == __LineStyle_DOTTED__:
1103 shape.PolyPolygon = tuple( list(shape.PolyPolygon) + __dots__(n, last, c2.X, c2.Y))
1104 shape.LineStart = __bezierdot__
1105 shape.LineStartCenter = True
1106 shape.LineStartWidth = max(20, _.pensize) / __MM10_TO_TWIP__
1107 shape.LineWidth = 0
1108 else:
1109 shape.PolyPolygon = tuple([tuple( list(shape.PolyPolygon[-1]) + [last2])])
1110 shape.LineWidth = _.pensize / __MM10_TO_TWIP__
1111 shape.LineColor, shape.LineTransparence = __splitcolor__(_.pencolor)
1112 if shape.LineTransparence == 100:
1113 shape.LineStyle = 0
1114 __visible__(shape, True)
1115 shape.Name = __ACTUAL__
1116 _.shapecache[__ACTUAL__] = shape
1117 _.oldlw = _.pensize
1118 _.oldlc = _.pencolor
1119 _.oldls = _.linestyle
1120 _.oldlj = _.linejoint
1121 _.oldlcap = _.linecap
1122 _.continuous = True
1123 __lefthang__(shape)
1124
1125def __fillit__(filled = True):
1126 oldshape = __getshape__(__ACTUAL__)
1127 if (oldshape and oldshape.LineStartCenter) or _.points:
1128 if oldshape:
1129 __removeshape__(__ACTUAL__) # FIXME close dotted polyline
1130 if _.points:
1131 p = position()
1132 h = heading()
1133 for i in _.points:
1134 position(i)
1135 __pen__(1)
1137 _.points = []
1138 __fillit__(filled)
1139 __pen__(0)
1140 position(p)
1141 heading(h)
1142 return
1143 if oldshape and "LineShape" in oldshape.ShapeType:
1144 shape = __draw__("PolyPolygonShape", False)
1145 shape.PolyPolygon = oldshape.PolyPolygon
1146 shape.setPosition(oldshape.getPosition())
1147 shape.LineStyle, shape.LineDash = __linestyle__(_.linestyle)
1148 shape.LineJoint = _.linejoint
1149 shape.LineCap = _.linecap
1150 shape.LineWidth = _.pensize / __MM10_TO_TWIP__
1151 shape.LineColor, shape.LineTransparence = __splitcolor__(_.pencolor)
1152 shape.FillColor, shape.FillTransparence = __splitcolor__(_.areacolor, shape)
1153 if _.hatch:
1154 shape.FillBackground = True if shape.FillTransparence != 100 else False
1155 shape.FillHatch = _.hatch
1156 shape.FillStyle = 3
1157 elif type(_.areacolor) != tuple:
1158 shape.FillStyle = int(filled)
1159 if shape.LineTransparence == 100:
1160 shape.LineStyle = 0
1161 if shape.FillTransparence == 100:
1162 shape.FillTransparence = 0 # for hatching and better modifications on UI
1163 if not _.hatch:
1164 shape.FillStyle = 0
1165 shape.setString(oldshape.getString())
1166 oldshape.Name = ""
1167 shape.Name = __ACTUAL__
1168 _.shapecache[__ACTUAL__] = shape
1169 if __group__ != 0:
1170 __group__.remove(oldshape)
1171 __visible__(shape, True)
1172 _.drawpage.remove(oldshape)
1173 elif oldshape and "PolyPolygon" in oldshape.ShapeType:
1174 oldshape.LineStyle = int(_.pen)
1175 oldshape.LineJoint = _.linejoint
1176 oldshape.LineCap = _.linecap
1177 if _.hatch:
1178 oldshape.FillBackground = True
1179 oldshape.FillHatch = _.hatch
1180 oldshape.FillStyle = 3
1181 else:
1182 oldshape.FillStyle = int(filled)
1183 oldshape.LineWidth = _.pensize / __MM10_TO_TWIP__
1184 oldshape.LineColor, oldshape.LineTransparence = __splitcolor__(_.pencolor)
1185 oldshape.FillColor, oldshape.FillTransparence = __splitcolor__(_.areacolor, oldshape)
1186
1187def point():
1188 oldpen, _.pen = _.pen, 1
1189 oldstyle, _.linestyle = _.linestyle, __LineStyle_DOTTED__
1190 __go__(__TURTLE__, 0, True)
1191 _.pen, _.linestyle = oldpen, oldstyle
1192 _.points.append(position())
1193
1194def __boxshape__(shapetype, l):
1195 turtle = __getshape__(__TURTLE__)
1196 shape = __draw__(shapetype + "Shape")
1197 pos = turtle.getPosition()
1198 pos.X = pos.X - (l[0] * __PT_TO_TWIP__ / __MM10_TO_TWIP__ / 2) + turtle.BoundRect.Width / 2.0
1199 pos.Y = pos.Y - (l[1] * __PT_TO_TWIP__ / __MM10_TO_TWIP__ / 2) + turtle.BoundRect.Height / 2.0
1200 shape.setPosition(pos)
1201 shape.setSize(__Size__(l[0] * __PT_TO_TWIP__ / __MM10_TO_TWIP__, l[1] * __PT_TO_TWIP__ / __MM10_TO_TWIP__))
1202 shape.LineStyle, shape.LineDash = __linestyle__(_.linestyle)
1203 shape.LineWidth = _.pensize / __MM10_TO_TWIP__
1204 shape.LineJoint = _.linejoint
1205 shape.LineCap = _.linecap
1206 shape.LineColor, shape.LineTransparence = __splitcolor__(_.pencolor)
1207 shape.FillColor, shape.FillTransparence = __splitcolor__(_.areacolor, shape, turtle.RotateAngle)
1208 if _.hatch:
1209 shape.FillBackground = True if shape.FillTransparence != 100 else False
1210 shape.FillHatch = _.hatch
1211 shape.FillStyle = 3
1212 elif type(_.areacolor) != tuple:
1213 shape.FillStyle = 1
1214 if shape.LineTransparence == 100:
1215 shape.LineStyle = 0
1216 if shape.FillTransparence == 100:
1217 shape.FillTransparence = 0 # for hatching and better modifications on UI
1218 if not _.hatch:
1219 shape.FillStyle = 0
1220 shape.RotateAngle = turtle.RotateAngle
1221 if shapetype == "Rectangle" and len(l) > 2:
1222 shape.CornerRadius = (l[2] * __PT_TO_TWIP__) / __MM10_TO_TWIP__
1223 elif shapetype == "Ellipse" and len(l) > 2:
1224 oldBoundRect = shape.BoundRect
1225 try:
1226 shape.CircleKind = __SECTION__
1227 shape.CircleStartAngle = (-l[3] - 270) * 100
1228 shape.CircleEndAngle = (-l[2] - 270) * 100
1229 shape.CircleKind = [__FULL__, __SECTION__, __CUT__, __ARC__][l[4]]
1230 except:
1231 pass
1232 pos.X = pos.X + shape.BoundRect.X - oldBoundRect.X
1233 pos.Y = pos.Y + shape.BoundRect.Y - oldBoundRect.Y
1234 shape.setPosition(pos)
1235 __visible__(shape, True)
1236 __removeshape__(__ACTUAL__)
1237 _.shapecache[__ACTUAL__] = shape
1238 __lefthang__(shape)
1239
1240def ellipse(l):
1241 if type(l) != type([]): # default for circle and square
1242 l = [l, l]
1243 if _.linestyle == __LineStyle_DOTTED__:
1245 _.linestyle = __LineStyle_SOLID__
1246 pc, _.pencolor = _.pencolor, 0xff000000
1247 ellipse(l)
1248 _.pencolor, _.linestyle = pc, __LineStyle_DOTTED__
1249 point()
1250 shape = __getshape__(__ACTUAL__)
1251 shape.PolyPolygon = tuple(__dots__(max(l[0], l[1]) * pi * __PT_TO_TWIP__, shape.PolyPolygon[0][0], 0, 0, [i/2.0 * __PT_TO_TWIP__ for i in l]))
1252 turtle = __getshape__(__TURTLE__)
1253 shape.RotateAngle = turtle.RotateAngle
1254 __groupend__()
1255 else:
1256 __boxshape__("Ellipse", l)
1257
1259 if type(l) != type([]): # default for circle and square
1260 l = [l, l]
1261 if _.linestyle == __LineStyle_DOTTED__:
1263 _.linestyle = __LineStyle_SOLID__
1264 pc, _.pencolor = _.pencolor, 0xff000000
1265 rectangle(l)
1266 _.pencolor, _.linestyle = pc, __LineStyle_DOTTED__
1267 point()
1268 shape = __getshape__(__ACTUAL__)
1269 if type(l) != type([]):
1270 l = [l, l]
1271 if len(l) == 2:
1272 l = l + [0]
1273 l = [i * __PT_TO_TWIP__ for i in l]
1274 c = shape.PolyPolygon[0][0]
1275 k = [min(l[0] / 2.0, l[2]), min(l[1] / 2.0, l[2])]
1276 p = __dots__(l[0] - 2 * k[0], __Point__(c.X - l[0]/2 + k[0], c.Y - l[1]/2), l[0] - 2 * k[0], 0)
1277 p = p[:-1] + __dots__(l[1] - 2 * k[1], __Point__(c.X + l[0]/2, c.Y - l[1]/2 + k[1]), 0, l[1] - 2 * k[1])
1278 p = p[:-1] + __dots__(l[0] - 2 * k[0], __Point__(c.X + l[0]/2 - k[0], c.Y + l[1]/2), -l[0] + 2 * k[0], 0)
1279 p = p[:-1] + __dots__(l[1] - 2 * k[1], __Point__(c.X - l[0]/2, c.Y + l[1]/2 - k[1]), 0, -l[1] + 2 * k[1])
1280 if l[2] > 0:
1281 p = p + __dots__(max(k) * 2 * pi, __Point__(c.X - l[0]/2 + k[0], c.Y - l[1]/2 + k[1]), 0, 0, k, 3)[1:]
1282 p = p + __dots__(max(k) * 2 * pi, __Point__(c.X + l[0]/2 - k[0], c.Y - l[1]/2 + k[1]), 0, 0, k, 2)[1:]
1283 p = p + __dots__(max(k) * 2 * pi, __Point__(c.X + l[0]/2 - k[0], c.Y + l[1]/2 - k[1]), 0, 0, k, 1)[1:]
1284 p = p + __dots__(max(k) * 2 * pi, __Point__(c.X - l[0]/2 + k[0], c.Y + l[1]/2 - k[1]), 0, 0, k, 4)[1:]
1285 shape.PolyPolygon = tuple(p)
1286 turtle = __getshape__(__TURTLE__)
1287 shape.RotateAngle = turtle.RotateAngle
1288 __groupend__()
1289 else:
1290 __boxshape__("Rectangle", l)
1291
1292def label(st):
1293 if type(st) != type([]):
1294 st = [0, 0, st]
1295 # get text size
1296 shape = _.doc.createInstance( "com.sun.star.drawing.TextShape")
1297 shape.TextAutoGrowWidth = True
1298 shape.Visible = False
1299 actual = __getshape__(__ACTUAL__)
1300 _.drawpage.add(shape)
1301 text(shape, st[2])
1302 z = shape.getSize()
1303 # show text using RectangleShape (for correct SVG export)
1304 ac, pc = _.areacolor, _.pencolor
1305 _.areacolor, _.pencolor = 0xff000000, 0xff000000 # invisible
1306 rectangle([z.Width / (__PT_TO_TWIP__ / __MM10_TO_TWIP__), z.Height / (__PT_TO_TWIP__ / __MM10_TO_TWIP__)])
1307 _.drawpage.remove(shape)
1308 _.pencolor, _.areacolor = pc, ac
1309 lab = __getshape__(__ACTUAL__)
1310 text(lab, st[2])
1311 if st[0] != 0 or st[1] != 0:
1312 pos = position()
1313 angle = heading()
1314 n = [st[0] * z.Width/2, st[1] * z.Height/2]
1315 dx = n[1] * sin((pi/180) * angle) + n[0] * sin((pi/180)*(angle + 90))
1316 dy = n[1] * cos((pi/180) * angle) + n[0] * cos((pi/180)*(angle + 90))
1317 lab.setPosition(__Point__(round(pos[0] * __PT_TO_TWIP__ / __MM10_TO_TWIP__ + dx - lab.BoundRect.Width/2), round(pos[1] * __PT_TO_TWIP__ / __MM10_TO_TWIP__ - dy - lab.BoundRect.Height/2)))
1318 _.shapecache[__ACTUAL__] = actual
1319 return z
1320
1322 "Process HTML-like tags, and return with text and formatting vector"
1323 st = orig_st.replace('&lt;', '\uE000')
1324 if not ('<' in st and '>' in st):
1325 return st.replace('\uE000', '<'), None, None
1326
1327 # convert localized bold, and italic values to <B> and <I> tags
1328 for i in ('BOLD', 'ITALIC'):
1329 st = re.sub(r'(</?)(' + __l12n__(_.lng)[i] + r')>', r'\1%s>' % i[0], st, flags=re.I)
1330
1331 for i in ('FONTCOLOR', 'FILLCOLOR', 'FONTFAMILY', 'FONTHEIGHT'):
1332 st = re.sub(r'<(' + __l12n__(_.lng)[i] + r')( *[^<> ][^<>]*)>', r'<%s\2>' % i.lower(), st, flags=re.I)
1333 st = re.sub(r'</(' + __l12n__(_.lng)[i] + r')>', r'</%s>' % i.lower(), st, flags=re.I)
1334
1335 # expand localized color names
1336 if _.lng not in __match_localized_colors__:
1337 __match_localized_colors__[_.lng] = re.compile(r'<(/?)(' + '|'.join(__colors__[_.lng].keys()) + ')>', re.IGNORECASE)
1338 # replacement lambda function: if it's an opening tag, return with the argument, too
1339 get_fontcolor_tag = lambda m: "<fontcolor %s>" % m.group(2) if len(m.group(1)) == 0 else "</fontcolor>"
1340 st = re.sub(__match_localized_colors__[_.lng], get_fontcolor_tag, st)
1341
1342 # expand abbreviated forms of font features
1343 # <smcp>small caps</smcp> -> <fontfeature smcp>small caps</fontfeature smcp>
1344 st = re.sub(__match_fontfeatures__, r'\1fontfeature \2\3', st)
1345
1346 tex = "" # characters without HTML tags
1347 pat = [] # bit vectors of the previous characters
1348 extra_pat = [] # extra data of the previous characters
1349 # 0th bit: bold
1350 # 1st bit: italic
1351 # 2nd bit: underline
1352 # 3rd bit: strikethrough
1353 # 4th bit: superscript
1354 # 5th bit: subscript
1355 # 6th bit: color
1356 # 7th bit: background color
1357 # 8th bit: font family
1358 # 9th bit: font feature (Graphite or OpenType)
1359 # 10th bit: font size
1360 f = 0
1361 # store embedding level of the same element to disable it
1362 # only at the most outer closing tag, e.g. <i>a <i>double</i> italic here, too</i>
1363 # bit_level = {0: 0, ..., 10: 0}
1364 bit_level = { i: 0 for i in range(11) }
1365
1366 extra_data = {}
1367 i = 0
1368 while i < len(st):
1369 is_tag = False
1370
1371 if st[i] == '<':
1372 for j in range(len(__match_tags__)):
1373 m = __match_tags__[j].match(st[i:])
1374 if m:
1375 tag = ""
1376 bit = j // 2
1377 if bit > 5:
1378 tag = m.group(1).lower()
1379 # opening tag
1380 if j % 2 == 0:
1381 f |= (1 << bit)
1382 bit_level[bit] += 1
1383 # extra data (color bit and over)
1384 if bit > 5:
1385 if tag in extra_data:
1386 extra_data[tag] = extra_data[tag] + [m.group(2)]
1387 else:
1388 extra_data[tag] = [m.group(2)]
1389 else:
1390 if bit_level[bit] > 0:
1391 bit_level[bit] -= 1
1392 if bit_level[bit] == 0:
1393 f &= ~(1 << bit)
1394 # extra data for font feature
1395 # fontfeature has a special closing tag, remove that from the extra_data
1396 # (allowing to use overlapping elements)
1397 if bit > 5 and (tag in extra_data):
1398 if bit == 9 and len(m.group(2)) > 0:
1399 # create a new list to keep the extra data of the previous characters,
1400 # and remove the last occurance of the feature
1401 z = list(extra_data[tag])
1402 for j in reversed(range(len(z))):
1403 if z[j].startswith(m.group(2)):
1404 z.pop(j)
1405 extra_data[tag] = z
1406 break
1407 # extra data
1408 else:
1409 extra_data[tag] = extra_data[tag][:-1]
1410
1411 i += len(m.group(0)) - 1
1412 is_tag = True
1413 break
1414
1415 if not is_tag:
1416 tex = tex + st[i]
1417 pat.append(f)
1418 extra_pat.append(dict(extra_data))
1419 i += 1
1420
1421 # no tags
1422 if len(st) == len(tex):
1423 pat = None
1424 extra_pat = None
1425
1426 return tex.replace('\uE000', '<'), pat, extra_pat
1427
1428def text(shape, orig_st):
1429 if shape:
1430 _.doc.lockControllers()
1431 # analyse HTML
1432 st, formatting, extra_data = __get_HTML_format__(orig_st)
1433 shape.setString(__string__(st, _.decimal))
1434 c = shape.createTextCursor()
1435 c.gotoStart(False)
1436 c.gotoEnd(True)
1437 c.CharColor, c.CharTransparence = __splitcolor__(_.textcolor)
1438 c.CharHeight = _.fontheight
1439 c.CharWeight = __fontweight__(_.fontweight)
1440 c.CharPosture = __fontstyle__(_.fontstyle)
1441 c.CharFontName = _.fontfamily
1442
1443 # has HTML-like formatting
1444 if formatting != None:
1445 _.fixSVG = True
1446 prev_format = 0
1447 prev_extra_data = extra_data[0]
1448 c.collapseToStart()
1449 n = 0 # length of the previous text span
1450 formatting.append(0) # add terminating 0 to process last span
1451 for i in formatting:
1452 if i != prev_format or (len(extra_data) > 0 and extra_data[0] != prev_extra_data):
1453 do_formatting = prev_format != 0
1454 c.goRight(n, do_formatting) # move cursor with optional selection
1455 if do_formatting:
1456 if prev_format & (1 << 0):
1457 c.CharWeight = 150
1458 if prev_format & (1 << 1):
1459 c.CharPosture = __Slant_ITALIC__
1460 if prev_format & (1 << 2):
1461 c.CharUnderline = __Underline_SINGLE__
1462 if prev_format & (1 << 3):
1463 c.CharStrikeout = __Strikeout_SINGLE__
1464 if prev_format & (1 << 4):
1465 c.CharEscapement = 14000 # magic number for default superscript, see DFLT_ESC_AUTO_SUPER
1466 c.CharEscapementHeight = 58
1467 if prev_format & (1 << 5):
1468 c.CharEscapement = -14000 # magic number for default subscript, see DFLT_ESC_AUTO_SUB
1469 c.CharEscapementHeight = 58
1470 if prev_format & (1 << 6):
1471 c.CharColor, c.CharTransparence = __splitcolor__(__color__(prev_extra_data['fontcolor'][-1]))
1472 if prev_format & (1 << 7):
1473 c.CharBackColor = __color__(prev_extra_data['fillcolor'][-1])
1474 if prev_format & (1 << 8):
1475 c.CharFontName = prev_extra_data['fontfamily'][-1]
1476 if prev_format & (1 << 9):
1477 # font features uses the following syntax: font_name:feat1&feat2&feat3=value&etc.
1478 if ":" in c.CharFontName:
1479 c.CharFontName = c.CharFontName + "&" + "&".join(prev_extra_data['fontfeature'])
1480 else:
1481 c.CharFontName = c.CharFontName + ":" + "&".join(prev_extra_data['fontfeature'])
1482 if prev_format & (1 << 10):
1483 c.CharHeight = prev_extra_data['fontheight'][-1]
1484
1485 c.collapseToEnd()
1486 n = 0
1487 n += 1
1488 prev_format = i
1489 if len(extra_data) > 0:
1490 prev_extra_data = extra_data.pop(0)
1491 _.doc.unlockControllers()
1492
1493def sleep(t):
1494 # lock shape repaint, if SLEEP argument is negative
1495 if t < 0:
1496 _.doc.lockControllers()
1497 # hide turtle during locking
1498 turtle = __getshape__(__TURTLE__)
1499 if turtle and turtle.Visible:
1500 hideturtle()
1501 _.lockturtle = True
1502 return
1503 else:
1504 # otherwise unlock one level
1505 __unlock__(all_levels = False)
1506 _.time = _.time + t
1507 __removeshape__(__ACTUAL__)
1508 for i in range(int(t/__SLEEP_SLICE_IN_MILLISECONDS__)):
1510 __time__.sleep(0.5)
1512 __time__.sleep(t%__SLEEP_SLICE_IN_MILLISECONDS__/1000.0)
1513
1514def __removeshape__(shapename):
1515 try:
1516 _.shapecache.pop(shapename).Name = ""
1517 except:
1518 pass
1519
1521 if type(w) == int:
1522 return w
1523 elif re.match(__l12n__(_.lng)['BOLD'], w, flags = re.I):
1524 return 150
1525 elif re.match(__l12n__(_.lng)['NORMAL'], w, flags = re.I):
1526 return 100
1527 return 100
1528
1530 if type(w) == int:
1531 return w
1532 elif re.match(__l12n__(_.lng)['ITALIC'], w, flags = re.I):
1533 return __Slant_ITALIC__
1534 elif re.match(__l12n__(_.lng)['UPRIGHT'], w, flags = re.I):
1535 return __Slant_NONE__
1536 return __Slant_NONE__
1537
1539 if type(c) in [int, float]:
1540 return c
1541 if type(c) == str:
1542 if c == u'any':
1543 rc, rv, rgray = __NORMCOLORS__[int(random.random()*7)], random.random(), random.random() ** 0.5
1544 ratio = 1.0*abs(rc[2])/(abs(rc[2]) + abs(rc[4]))
1545 newcol = list(rc[0])
1546 if rv < ratio:
1547 newcol[rc[1]] += rc[2] * rv/ratio
1548 else:
1549 newcol[rc[3]] += rc[4] * (rv - ratio)/(1 - ratio)
1550 # random grayness
1551 rdark = 1 - 2**4 * (random.random()-0.5)**4
1552 for i in range(0, 3):
1553 newcol[i] = 255 * (rgray + (newcol[i]/255.0 - rgray) * rdark)
1554 return __color__(newcol)
1555 elif c[0:1] == '~':
1556 c = __componentcolor__(__colors__[_.lng][c[1:].lower()])
1557 for i in range(3):
1558 c[i] = max(min(c[i] + int(random.random() * 64) - 32, 255), 0)
1559 return __color__(c)
1560 elif c[0].isdigit():
1561 return int(c, 0) # recognize hex and decimal numbers as strings
1562 return __colors__[_.lng][c.lower()]
1563 if type(c) == list:
1564 if len(c) == 1: # color index
1565 return __COLORS__[int(c[0])][1]
1566 elif len(c) == 3: # RGB
1567 return (int(c[0])%256 << 16) + (int(c[1])%256 << 8) + int(c[2])%256
1568 elif len(c) == 2 or len(c) > 4: # gradient
1569 return (__color__(c[0]), __color__(c[1])) + tuple(c[2:])
1570 return (int(c[3])%256 << 24) + (int(c[0])%256 << 16) + (int(c[1])%256 << 8) + int(c[2])%256 # RGB + alpha
1571
1573 if _.pen == 0:
1574 return 0, __LineDash__()
1575 if _.linestyle == __LineStyle_DASHED__:
1576 return _.linestyle, __LineDash__(__DashStyle_RECT__, 0, 0, 1, 100, 100)
1577 elif _.linestyle == __LineStyle_DOTTED__:
1578 return __LineStyle_DASHED__, __LineDash__(__DashStyle_RECT__, 1, 1, 0, 0, 100000)
1579 elif type(s) == list:
1580 return __LineStyle_DASHED__, __LineDash__((s[5:6] or [0])[0], s[0], s[1] * __PT_TO_TWIP__, s[2], s[3] * __PT_TO_TWIP__, s[4] * __PT_TO_TWIP__)
1581 return s, __LineDash__()
1582
1584 if type(s) == list:
1585 color, null = __splitcolor__(__color__(s[1]))
1586 _.hatch = __Hatch__(s[0] - 1, color, s[2] * __PT_TO_TWIP__, s[3] * 10)
1587 elif s == 0:
1588 _.hatch = None
1589 elif s <= 10: # using hatching styles of Writer
1590 fillstyle([[1, 0, 5, 0], [1, 0, 5, 45], [1, 0, 5, -45], [1, 0, 5, 90], [2, [127, 0, 0], 5, 45], [2, [127, 0, 0], 5, 0], [2, [0, 0, 127], 5, 45], [2, [0, 0, 127], 5, 0], [3, [0, 0, 127], 5, 0], [1, 0, 25, 45]][s-1])
1591
1592def __splitcolor__(c, shape = None, angle = None):
1593 if shape and (type(c) == tuple or type(_.t10y) == list):
1594 angle = heading() if angle == None else -angle / 100 + 360
1595 if type(c) == tuple:
1596 shape.FillStyle = __FillStyle_GRADIENT__
1597 # gradient color: [color1, color2, style, angle(must be positive for I/O), border, x_percent, y_percent, color1_intensity_percent, color2_intensity_percent]
1598 d, d[0:len(c)], c = [0, 0, __GradientStyle_LINEAR__, 0, 0, 0, 0, 100, 100], c, c[0]
1599 shape.FillGradient = __Gradient__(d[2], d[0], d[1], (-angle + d[3]) * 10 % 3600, d[4], d[5], d[6], d[7], d[8], 0)
1600 if type(_.t10y) == list: # transparency gradient: [begin_percent, end_percent, style, angle, border, x_percent, y_percent]
1601 table = _.doc.createInstance("com.sun.star.drawing.TransparencyGradientTable")
1602 if not table.hasByName(str(_.t10y) + str(angle)):
1603 t, t[0:len(_.t10y)] = [100, __GradientStyle_LINEAR__, 0, 0, 0, 0, 0], _.t10y
1604 table.insertByName(str(_.t10y) + str(angle), __Gradient__(t[2], t[0] * 0xffffff / 100.0, t[1] * 0xffffff / 100.0, (-angle + t[3]) * 10 % 3600, t[4], t[5], t[6], 100, 100, 0))
1605 shape.FillTransparenceGradientName = str(_.t10y) + str(angle)
1606 c = 0 if type(c) == tuple else c & 0xffffff
1607 else:
1608 shape.FillStyle = __FillStyle_GRADIENT__
1609 c = int(_.t10y * 255.0/100) << 24
1610 """Split color constants to RGB (3-byte) + transparency (%)"""
1611 return int(c) & 0xffffff, (int(c) >> 24) / (255.0/100)
1612
1614 a = [ (c & 0xff0000) >> 16, (c & 0xff00) >> 8, c & 0xff ]
1615 if c > 2**24:
1616 a.append((c & 0xff000000) >> 24)
1617 return a
1618
1619def pencolor(n = -1):
1620 if n != -1:
1621 _.pencolor = __color__(n)
1622 turtle = __getshape__(__TURTLE__)
1623 if turtle and __visible__(turtle):
1624 turtle.LineColor, turtle.LineTransparence = __splitcolor__(_.pencolor)
1625 else:
1626 return __componentcolor__(_.pencolor)
1627
1628def pensize(n = -1):
1629 if n != -1:
1630 if n == 'any':
1631 _.pensize = random.random() * 10 * __PT_TO_TWIP__
1632 else:
1633 _.pensize = n * __PT_TO_TWIP__
1634 turtle = __getshape__(__TURTLE__)
1635 if turtle and __visible__(turtle):
1636 turtle.LineWidth = min(_.pensize, (1 + _.pen * 2) * __PT_TO_TWIP__) / __MM10_TO_TWIP__
1637 return _.pensize / __PT_TO_TWIP__
1638
1639def penstyle(n = -1):
1640 if n == -1:
1641 try:
1642 return __locname__(_.linestyle.value)
1643 except:
1644 return __locname__('DOTTED')
1645 if type(n) == list and len(n) >= 5:
1646 _.linestyle = n
1647 elif re.match(__l12n__(_.lng)['SOLID'], n, flags = re.I):
1648 _.linestyle = __LineStyle_SOLID__
1649 elif re.match(__l12n__(_.lng)['DASH'], n, flags = re.I):
1650 _.linestyle = __LineStyle_DASHED__
1651 elif re.match(__l12n__(_.lng)['DOTTED'], n, flags = re.I):
1652 _.linestyle = __LineStyle_DOTTED__
1653
1654def penjoint(n = -1):
1655 if n == -1:
1656 return __locname__(_.linejoint.value)
1657 if re.match(__l12n__(_.lng)['NONE'], n, flags = re.I):
1658 _.linejoint = __Joint_NONE__
1659 elif re.match(__l12n__(_.lng)['BEVEL'], n, flags = re.I):
1660 _.linejoint = __BEVEL__
1661 elif re.match(__l12n__(_.lng)['MITER'], n, flags = re.I):
1662 _.linejoint = __MITER__
1663 elif re.match(__l12n__(_.lng)['ROUNDED'], n, flags = re.I):
1664 _.linejoint = __ROUNDED__
1665
1666def pencap(n = -1):
1667 if n == -1:
1668 return __locname__(_.linecap.value.replace('BUTT', 'NONE'))
1669 if re.match(__l12n__(_.lng)['NONE'], n, flags = re.I):
1670 _.linecap = __Cap_NONE__
1671 elif re.match(__l12n__(_.lng)['ROUNDED'], n, flags = re.I):
1672 _.linecap = __Cap_ROUND__
1673 elif re.match(__l12n__(_.lng)['SQUARE'], n, flags = re.I):
1674 _.linecap = __Cap_SQUARE__
1675
1676def fillcolor(n = -1):
1677 if n != -1:
1678 _.areacolor = __color__(n)
1679 if type(_.areacolor) != tuple:
1680 _.t10y = (int(_.areacolor) >> 24) / (255.0/100)
1681 else:
1682 _.t10y = 0
1683 turtle = __getshape__(__TURTLE__)
1684 if turtle and __visible__(turtle):
1685 turtle.FillColor, transparence = __splitcolor__(_.areacolor, turtle)
1686 turtle.FillTransparence = min(95, transparence)
1687 else:
1688 return __componentcolor__(_.areacolor)
1689
1691 if n != -1:
1692 if n == u'any':
1693 n = 100 * random.random()
1694 if type(n) != list:
1695 if type(_.areacolor) != tuple:
1696 fillcolor((_.areacolor & 0xffffff) + (int(n * (255.0/100)) << 24))
1697 else:
1698 _.t10y = n
1699 else:
1700 _.t10y = n
1701 else:
1702 return _.t10y
1703
1705 if n != -1:
1706 if n == u'any':
1707 n = 100 * random.random()
1708 pencolor((_.pencolor & 0xffffff) + (int(n * (255.0/100)) << 24))
1709 else:
1710 return _.pencolor >> 24
1711
1712def fontcolor(n = -1):
1713 if n != -1:
1714 _.textcolor = __color__(n)
1715 else:
1716 return __componentcolor__(_.textcolor)
1717
1719 if n != -1:
1720 if n == u'any':
1721 n = 100 * random.random()
1722 fontcolor((_.textcolor & 0xffffff) + (int(n * (255.0/100)) << 24))
1723 else:
1724 return _.textcolor >> 24
1725
1726def position(n = -1):
1727 turtle = __getshape__(__TURTLE__)
1728 if turtle:
1729 if n != -1:
1730 if n == 'any':
1731 ps = pagesize()
1732 heading([random.random() * ps[0], random.random() * ps[1]], True)
1733 else:
1734 heading(n, True)
1735 else:
1736 pos = turtle.getPosition()
1737 pos.X, pos.Y = pos.X + turtle.BoundRect.Width / 2.0, pos.Y + turtle.BoundRect.Height / 2.0
1738 return [ pos.X * __MM10_TO_TWIP__ / __PT_TO_TWIP__, pos.Y * __MM10_TO_TWIP__ / __PT_TO_TWIP__ ]
1739
1740def __groupstart__(name = ""):
1741 global __group__, __grouplefthang__, __groupstack__
1742 __removeshape__(__ACTUAL__)
1743 __groupstack__.append(__group__)
1744 if name != "": # store pic name (for correct repcount)
1745 __groupstack__.append(name)
1746 if ".SVG" == name[-4:].upper():
1747 _.time = 0
1748 _.shapecount = itertools.count()
1749 __groupstack__.append(__grouplefthang__)
1750 __group__ = uno.getComponentContext().ServiceManager.createInstance('com.sun.star.drawing.ShapeCollection')
1751 __grouplefthang__ = 0
1752
1754 global _
1755 id = int(m.group(1))
1756 if id - 3 in _.shapecache:
1757 t = _.shapecache[id-3]
1758 opacity = "100" if t == "0" else "0"
1759 name = "" if id != 3 else "id=\"first\""
1760 start = "%sms;last.end+%sms" % (t, t) if id == 3 else "first.end+%dms" % (int(t) - int(_.shapecache[0]))
1761 return '<g id="id%s" opacity="0"><animate %s attributeName="opacity" from="100" to="100" begin="%s" dur="1ms" fill="freeze"/><animate attributeName="opacity" from="100" to="%s" begin="last.end" dur="1ms" fill="freeze"/>' % (m.group(1), name, start, opacity)
1762 return m.group()
1763
1765 with open(filename, "r") as f:
1766 s = f.read()
1767 s = re.sub(r'(?s)(<g\sid="[^"]*)\‍(([^"]*)\‍)', '\\1\\2', s) # bad "(", ")" in xml:id
1768 s = re.sub('(?s)<g\\sooo:[^>]*>', '', s) # remove non standard attributes
1769 s = re.sub('(?s)<defs class="EmbeddedBulletChars">.*(?=<defs class="TextEmbeddedBitmaps")', '', s) # remove unused parts
1770 s = re.sub('(?s)(<path stroke-width="[^"]*"[^<]*)stroke-width="[^"]*"', '\\1', s) # double stroke-width
1771 s = re.sub('(?s)<svg\\s+version="1.2"', '<svg version="1.1"', s) # for W3C Validator
1772 if _.time > 0:
1773 s = re.sub('<g id="id([0-9]+)">', create_svg_animation, s)
1774 m = re.match('(?s)(.*<animate[^>]*first[.]end.([0-9]+)[^>]* dur=")1ms"', s)
1775 lasttime = _.time - int(m.group(2)) - int(_.shapecache[0]) + 1
1776 if lasttime > 1:
1777 s = re.sub('(?s)(.*<animate[^>]*first[.]end.([0-9]+)[^>]* dur=")1ms"', m.group(1) + str(lasttime) + 'ms" id="last"', s)
1778 with open(filename, 'w') as f:
1779 f.write(s)
1780
1781def __groupend__(name = ""):
1782 global __group__, __grouplefthang__, __groupstack__, __halt__
1783 g = 0
1784 if __group__.getCount() > 1:
1785 if __grouplefthang__ < 0:
1786 for i in range(__group__.Count):
1787 s = __group__.getByIndex(i)
1788 p = s.getPosition()
1789 p.X = p.X + -__grouplefthang__
1790 s.setPosition(p)
1791 g = _.drawpage.group(__group__)
1792 p = g.getPosition()
1793 p.X = p.X + __grouplefthang__
1794 g.setPosition(p)
1795 else:
1796 g = _.drawpage.group(__group__)
1797 g.TextWrap = __THROUGH__
1798 elif __group__.getCount() == 1:
1799 g = __group__.getByIndex(0)
1800 __grouplefthang__ = min(__groupstack__.pop(), __grouplefthang__)
1801 if name != "":
1802 name = __groupstack__.pop()
1803 if name and ".SVG" == name[-4:].upper() and g != 0:
1804 _.doc.CurrentController.select(g)
1805 __dispatcher__(".uno:Copy")
1806 ctx = XSCRIPTCONTEXT.getComponentContext()
1807 d = ctx.ServiceManager.createInstanceWithContext("com.sun.star.frame.Desktop", ctx)
1808 draw = d.loadComponentFromURL("private:factory/sdraw", "_blank", 0, ())
1809 drawpage = draw.getDrawPages().getByIndex(0)
1810 while XSCRIPTCONTEXT.getDocument() != draw:
1811 if XSCRIPTCONTEXT.getDocument() not in [draw, _.doc, None]:
1812 __halt__ = True
1813 return
1814 __time__.sleep(0.1)
1815 __dispatcher__(".uno:Paste", (), draw)
1816 __dispatcher__(".uno:FormatGroup", (), draw)
1817 # fix bad or non-portable SVG export by converting text to curve
1818 if _.fixSVG:
1819 __dispatcher__(".uno:ChangeBezier", (), draw)
1820 pic = drawpage.getByIndex(0)
1821 pic.setPosition(__Point__((g.BoundRect.Width - g.Size.Width)//2, (g.BoundRect.Height - g.Size.Height)//2))
1822 drawpage.Height, drawpage.Width = g.BoundRect.Height, g.BoundRect.Width
1823 if not os.path.isabs(name):
1824 name = os.getcwd() + os.path.sep + name
1825 __dispatcher__(".uno:ExportTo", (__getprop__("URL", unohelper.systemPathToFileUrl(name)), __getprop__("FilterName", "draw_svg_Export")), draw)
1826 draw.close(True)
1827 while XSCRIPTCONTEXT.getDocument() != _.doc:
1828 if XSCRIPTCONTEXT.getDocument() not in [draw, _.doc, None]:
1829 __halt__ = True
1830 return
1831 __time__.sleep(0.1)
1833 __group__ = __groupstack__.pop()
1834 if __group__ != 0 and g != 0:
1835 __group__.add(g)
1836 __removeshape__(__ACTUAL__)
1837
1838def __int__(x): # handle eg. int("10cm")
1839 if type(x) == str:
1840 x = __float__(x)
1841 return int(x)
1842
1843def __float__(x): # handle eg. float("10,5cm")
1844 if type(x) == str:
1845 for i in __comp__[_.lng]:
1846 x = re.sub(u"(?iu)" + i[0], i[1], x)
1847 x = eval(x)
1848 return float(x)
1849
1850def fontheight(n = -1):
1851 if n != -1:
1852 _.fontheight = n
1853 else:
1854 return _.fontheight
1855
1856def fontweight(n = -1):
1857 if n != -1:
1858 _.fontweight = n
1859 else:
1860 return _.fontweight
1861
1862def fontfamily(s = -1):
1863 if s != -1:
1864 _.fontfamily = s
1865 if ':' in s:
1866 _.fixSVG = True
1867 else:
1868 return _.fontfamily
1869
1870def fontstyle(n = -1):
1871 if n != -1:
1872 _.fontstyle = n
1873 else:
1874 return _.fontstyle
1875
1876def __loadlang__(lang, a):
1877 global comp, __colors__
1878 __colors__[lang] = {}
1879 for i in __COLORS__:
1880 for j in a[i[0]].split("|"):
1881 __colors__[lang][j.lower()] = i[1]
1882 for i in a:
1883 if not i[0:3] in ["LIB", "ERR", "PT", "INC", "MM", "CM", "HOU", "DEG"] and not i in __STRCONST__: # uppercase native commands
1884 a[i] = a[i].upper()
1885 repcount = a['REPCOUNT'].split('|')[0]
1886 loopi = itertools.count()
1887 loop = lambda r: "%(i)s = 1\n%(orig)s%(j)s = %(i)s\n%(i)s += 1\n" % \
1888 { "i": repcount + str(next(loopi)), "j": repcount, "orig": re.sub( r"(?ui)(?<!:)\b%s\b" % repcount, repcount + str(next(loopi)-1), r.group(0)) }
1889 __comp__[lang] = [
1890 [r"(?i)(?<!:)(\b|(?=[-:]))(?:%s)\b" % "|".join([a[i].lower() for i in a if not "_" in i and i != "DECIMAL"]), lambda s: s.group().upper()], # uppercase all native commands in the source code
1891 [r"(?<!:)\b(?:%s) \[(?= |\n)" % a['GROUP'], "\n__groupstart__()\nfor __groupindex__ in range(2):\n[\nif __groupindex__ == 1:\n[\n__groupend__()\nbreak\n]\n"],
1892 [r"(?<!:)\b(?:%s) (%s[^[]*)\[(?= |\n)" % (a['GROUP'], __DECODE_STRING_REGEX__), "\n__groupstart__(\\1)\nfor __groupindex__ in range(2):\n[\nif __groupindex__ == 1:\n[\n__groupend__(\\1)\nbreak\n]\n"],
1893 [r"(?<!:)\b(?:%s)\b" % a['GROUP'], "\n__removeshape__(__ACTUAL__)\n"],
1894 [r"(\n| )][ \n]*\[(\n| )", "\n]\nelse:\n[\n"], # if/else block
1895 [r"(?<!\n)\[(?= |\n)", ":\n[\n"], # start block
1896 [r"( ]|\n]$)", "\n]\n"], # finish block
1897 [r"(?<!:)\b(?:%s)\b" % a['FOR'], "\nfor"],
1898 [r"(?<!:)\b(?:%s)\b" % a['REPEAT'], "\n__repeat__"],
1899 [r"(?<!:)\b(?:%s)\b" % a['BREAK'], "\nbreak"],
1900 [r"(?<!:)\b(?:%s)\b" % a['CONTINUE'], "\ncontinue"],
1901 [r"(?<!:)\b(?:%s)\b" % a['REPCOUNT'], repcount],
1902 [r"(?<!:)\b(?:%s)\b" % a['IF'], "\nif"],
1903 [r"(?<!:)\b(?:%s)\b" % a['WHILE'], "\nwhile"],
1904 [r"(?<!:)\b(?:%s)\b" % a['OUTPUT'], "\nreturn"],
1905 [r"\n(if|while|return) [^\n]*", lambda r: re.sub("(?<![=!<>])=(?!=)", "==", r.group(0))], # = -> ==, XXX x = y = 1?
1906 [r"(?<=\n)(for\b :?\w+) ([^\n]+)(?<=\w|]|}|\‍))(?=-|:)(?:%s)\b" % a['IN'], "\\1 in \\2"], # "for x y-in" -> "for x in y"
1907 [r"(:?\b\w+|[\[][^[\n]*])\b(?:%s)\b" % a['IN'], "in \\1"], # "x y-in" -> "x in y"
1908 [r"(?<!:)\b(?:%s)\b" % a['IN'], "in"],
1909 [r"(?<!:)\b(?:%s)\b[ \t]+(:?\w+)\b(?! in\b)" % a['FOR'], "\nfor \\1 in"],
1910 [r"(?<=\n)__repeat__ :\n", "while True:\n"], # infinite loop
1911 [r"(?<=\n)(for|while) (?!__groupindex__)[^\n]*:\n\[\n", loop], # loop variables for repcount (not groupindex loop)
1912 [r"(?<=\n)__repeat__([^\n]*\w[^\n]*):(?=\n)", "for %s in range(1, 1+int(\\1)):" % repcount], # repeat block
1913 [r"(?<=\d)[%s](?=\d)" % a['DECIMAL'], "."], # decimal sign
1914 [r"(?<!/)/(?!/)", "*1.0/"], # fix division: /1 -> /1.0, but not with //
1915 [r"\b([0-9]+([,.][0-9]+)?)(%s)\b" % a['HOUR'], lambda r: str(float(r.group(1).replace(",", "."))*30)], # 12h = 12*30°
1916 [r"(?<=\d)(%s)" % a['DEG'], ""], # 1° -> 1
1917 [r"(?<!:)\b(?:__def__)[ \t]+(\w+)\b[ \t]*([:]?\w[^\n]*)", "\ndef \\1(\\2):\n["],
1918 [r"(?<!:)\b(?:__def__)\s+(\w+)", "\ndef \\1():\n["],
1919 [r"(?<!:)\b(?:%s)\b" % a['END'], "\n]"],
1920 [r"(?<!:)\b(?:%s)\b" % a['GLOBAL'], "global"],
1921 [r"(?<!:)\b(?:%s)\b" % a['TRUE'], "True"],
1922 [r"(?<!:)\b(?:%s)\b" % a['FALSE'], "False"],
1923 [r"(?<!:)\b(?:%s)\b" % a['NOT'], "not"],
1924 [r"(?<!:)\b(?:%s)\b" % a['AND'], "and"],
1925 [r"(?<!:)\b(?:%s)\b" % a['OR'], "or"],
1926 [r"(?<!:)\b(?:%s)\b" % a['INT'], "__int__"],
1927 [r"(?<!:)\b(?:%s)\b" % a['FLOAT'], "__float__"],
1928 [r"(?<!:)\b(?:%s)\b" % a['STR'], "__string__"],
1929 [r"(?<!:)\b(?:%s)\b" % a['COUNT'], "len"],
1930 [r"(?<!:)\b(?:%s)\b" % a['ROUND'], "round"],
1931 [r"(?<!:)\b(?:%s)\b" % a['ABS'], "abs"],
1932 [r"(?<!:)\b(?:%s)\b" % a['SIN'], "sin"],
1933 [r"(?<!:)\b(?:%s)\b" % a['COS'], "cos"],
1934 [r"(?<!:)\b(?:%s)\b" % a['PI'], "pi"],
1935 [r"(?<!:)\b(?:%s)\b" % a['SQRT'], "sqrt"],
1936 [r"(?<!:)\b(?:%s)\b" % a['LOG10'], "log10"],
1937 [r"(?<!:)\b(?:%s)\b" % a['MIN'], "min"],
1938 [r"(?<!:)\b(?:%s)\b" % a['MAX'], "max"],
1939 [r"(?<!:)\b(?:%s)\b" % a['STOP'], "\nreturn None"],
1940 [r"(?<!:)\b(?:%s)\b" % a['CLEARSCREEN'], "\n__cs__()"],
1941 [r"(?<!:)\b(?:%s)(\s+|$)" % a['PENCOLOR'], "\n)pencolor("],
1942 [r"(?<!:)\b(?:%s)(\s+|$)" % a['PENSTYLE'], "\n)penstyle("],
1943 [r"(?<!:)\b(?:%s)(\s+|$)" % a['PENJOINT'], "\n)penjoint("],
1944 [r"(?<!:)\b(?:%s)(\s+|$)" % a['PENCAP'], "\n)pencap("],
1945 [r"(?<!:)\b(?:%s)(\s+|$)" % a['FILLCOLOR'], "\n)fillcolor("],
1946 [r"(?<!:)\b(?:%s)(\s+|$)" % a['FILLTRANSPARENCY'], "\n)filltransparency("],
1947 [r"(?<!:)\b(?:%s)(\s+|$)" % a['PENTRANSPARENCY'], "\n)pentransparency("],
1948 [r"(?<!:)\b(?:%s)(\s+|$)" % a['FILLSTYLE'], "\n)fillstyle("],
1949 [r"(?<!:)\b(?:%s)(\s+|$)" % a['FONTCOLOR'], "\n)fontcolor("],
1950 [r"(?<!:)\b(?:%s)(\s+|$)" % a['FONTTRANSPARENCY'], "\n)fonttransparency("],
1951 [r"(?<!:)\b(?:%s)(\s+|$)" % a['FONTFAMILY'], "\n)fontfamily("],
1952 [r"(?<!:)\b(?:%s)(\s+|$)" % a['FONTHEIGHT'], "\n)fontheight("],
1953 [r"(?<!:)\b(?:%s)(\s+|$)" % a['FONTWEIGHT'], "\n)fontweight("],
1954 [r"(?<!:)\b(?:%s)(\s+|$)" % a['FONTSTYLE'], "\n)fontstyle("],
1955 [r"(?<!:)\b(?:%s)(\s+|$)" % a['PENWIDTH'], "\n)pensize("],
1956 [r"(?<!:)\b(?:%s)\b" % a['PENDOWN'], "\n__pen__(1)"],
1957 [r"(?<!:)\b(?:%s)\b" % a['PENUP'], "\n__pen__(0)"],
1958 [r"(?<!:)\b(?:%s)\b" % a['HIDETURTLE'], "\nhideturtle()"],
1959 [r"(?<!:)\b(?:%s)\b" % a['SHOWTURTLE'], "\nshowturtle()"],
1960 [r"(?<!:)\b(?:%s)\b\[" % a['POSITION'], "position()["],
1961 [r"(?<!:)\b(?:%s)\b(?!\‍()" % a['POSITION'], "\n)position("],
1962 [r"(?<!:)\b(?:%s)\b" % a['HEADING'], "\n)heading("],
1963 [r"(?<!:)\b(?:%s)\b" % a['PAGESIZE'], "pagesize()"],
1964 [r"(?<!:)\b(?:%s)\b" % a['POINT'], "\npoint()"],
1965 [r"(?<!:)\b(?:%s)\b" % (a['ELLIPSE'] + "|" + a['CIRCLE']), "\n)ellipse("],
1966 [r"(?<!:)\b(?:%s)\b" % (a['RECTANGLE'] + "|" + a['SQUARE']), "\n)rectangle("],
1967 [r"(?<!:)\b(?:%s)\b" % a['CLOSE'], "\n__fillit__(False)"],
1968 [r"(?<!:)\b(?:%s)\b" % a['FILL'], "\n__fillit__()"],
1969 [r"(?<!:)\b(?:%s)\b" % a['LABEL'], "\n)label("],
1970 [r"(?<!:)\b(?:%s)\b" % a['TEXT'], "\n)text(__getshape__(__ACTUAL__),"],
1971 [r"(text\‍([ \t]*\"[^\"\n\‍)]*)", "\\1\"\n"],
1972 [r"(?<!:)\b(?:%s)\b" % a['HOME'], "\nturtlehome()"],
1973 [r"(?<!:)\b(?:%s)\b" % a['SLEEP'], "\n)sleep("],
1974 [r"(?<!:)\b(?:%s)\b" % a['FORWARD'], "\n)forward("],
1975 [r"(?<!:)\b(?:%s)\b" % a['BACKWARD'], "\n)backward("],
1976 [r"(?<!:)\b(?:%s)\b" % a['TURNRIGHT'], "\n)turnright("],
1977 [r"(?<!:)\b(?:%s)\b" % a['RANDOM'], "Random"],
1978 [r"(?<!:)\b(?:%s)\b" % a['SET'], "set"],
1979 [r"(?<!:)\b(?:%s)\b" % a['RANGE'], "range"],
1980 [r"(?<!:)\b(?:%s)\b" % a['LIST'], "list"],
1981 [r"(?<!:)\b(?:%s)\b" % a['TUPLE'], "tuple"],
1982 [r"(?<!:)\b(?:%s)\b" % a['SORTED'], "sorted"],
1983 [r"(?<!:)\b(?:%s)\b ?\‍(" % a['RESEARCH'], "re.search('(?u)'+"],
1984 [r"(?<!:)\b(?:%s)\b ?\‍(" % a['RESUB'], "re.sub('(?u)'+"],
1985 [r"(?<!:)\b(?:%s)\b ?\‍(" % a['REFINDALL'], "re.findall('(?u)'+"],
1986 [r"(?<!:)\b(?:%s)\b" % a['ANY'], "u'any'"],
1987 [r"(?<!:)\b(?:%s) (\w+|[\[][^\]]*])\b" % a['INPUT'], " Input(\\1)"],
1988 [r"(?<!:)\b(?:%s)\b" % a['PRINT'], "\nPrint"],
1989 [r"(?<!:)\b(?:%s)\b" % a['TURNLEFT'], "\n)turnleft("],
1990 [r"\b([0-9]+([,.][0-9]+)?)(%s)\b" % a['PT'], "\\1"],
1991 [r"\b([0-9]+([,.][0-9]+)?)(%s)(?!\w)" % a['INCH'], lambda r: str(float(r.group(1).replace(",", "."))*72)],
1992 [r"\b([0-9]+([,.][0-9]+)?)(%s)\b" % a['MM'], lambda r: str(float(r.group(1).replace(",", "."))*__MM_TO_PT__)],
1993 [r"\b([0-9]+([,.][0-9]+)?)(%s)\b" % a['CM'], lambda r: str(float(r.group(1).replace(",", "."))*__MM_TO_PT__*10)],
1994 [r"(?<=[-*/=+,]) ?\n\‍)(\w+)\‍(", "\\1()"], # read attributes, eg. x = fillcolor
1995 [r"(?<=return) ?\n\‍)(\w+)\‍(", "\\1()"], # return + user function
1996 ]
1997
1998def __concatenation__(r): # keep line positions with extra line breaks
1999 s = re.subn("~[ \t]*\n", " ", r.group(0))
2000 return s[0] + "\n" * s[1]
2001
2002# convert Logo expressions to Python ones by adding
2003# missing parentheses to procedure and function calls
2004# f x y z -> f(x, y, z)
2005# a = [sin len f [cos 45, 6] [1, 2, 3] sin 90] ->
2006# a = [sin(len(f([cos(45),6],[1, 2, 3], sin(90))]
2007# NOTE: "f(45)" and "f (45)" are not the same:
2008# sin(45) + cos 45 -> sin(45) + cos(45)
2009# sin (45) + cos 45 -> sin(45 + cos(45))
2010def __l2p__(i, par, insub, inarray):
2011 first = True
2012 while par["pos"] < len(i):
2013 pos = par["pos"]
2014 ch = i[pos]
2015 ignored = False
2016 # starting parenthesis
2017 if ch in "([":
2018 if insub and not inarray and not first and par["out"][-1:] != "]":
2019 return
2020 par["out"] += ch
2021 par["pos"] += 1
2022 __l2p__(i, par, insub, True)
2023 # ending parenthesis
2024 elif ch in ")]":
2025 if insub and not inarray:
2026 return
2027 # put character before terminating spaces
2028 par["out"] = re.sub("( *)$", ch + "\\1", par["out"])
2029 par["pos"] += 1
2030 return
2031 # starting a subroutine
2032 elif pos in par["sub"]:
2033 if insub and not inarray and not first:
2034 return
2035 first = False
2036 subname = i[pos:par["sub"][pos]]
2037 par["pos"] += len(subname)
2038 par["out"] += subname
2039 # Logo syntax: add parentheses
2040 # for example: foo x y z -> foo(x, y, z)
2041 par["out"] += "("
2042 for j in range(par["names"][subname]):
2043 # add commas, except if already added, eg. with special RANGE
2044 # (variable argument counts: RANGE 1 or RANGE 1 100 or RANGE 1 100 10)
2045 if j > 0 and par["out"].rstrip()[-1] != ",":
2046 par["out"] = re.sub("( +),$",",\\1", par["out"] + ",")
2047 __l2p__(i, par, True, False)
2048 par["out"] = re.sub("( +)\\)$", ")\\1", par["out"] + ")")
2049 # operators
2050 elif pos in par["op"]:
2051 op = i[pos:par["op"][pos]]
2052 par["out"] += op
2053 par["pos"] += len(op)
2054 __l2p__(i, par, insub, False)
2055 # other atoms
2056 elif pos in par["atom"]:
2057 if insub and not inarray and not first:
2058 return
2059 first = False
2060 atom = i[pos:par["atom"][pos]]
2061 par["out"] += atom
2062 par["pos"] += len(atom)
2063 # handle subroutines with explicit parentheses
2064 # and array indices
2065 if i[par["pos"]:par["pos"]+1] in "([":
2066 first = True
2067 continue
2068 # optional negative or positive sign
2069 elif ch in "-+":
2070 if insub and not inarray and not first:
2071 return
2072 par["out"] += ch
2073 par["pos"] += 1
2074 ignored = first
2075 elif ch == " ":
2076 par["out"] += ch
2077 par["pos"] += 1
2078 ignored = first
2079 elif insub and ((ch == "," and not inarray) or (ch != ",")):
2080 return
2081 else:
2082 par["out"] += ch
2083 par["pos"] += 1
2084 # end of first subexpression, except in the case of ignored characters
2085 if not ignored:
2086 first = False
2087
2089 global _, comp, __strings__, __compiled__
2090 try:
2091 c = _.doc.CurrentController.getViewCursor()
2092 locs = [i for i in [c.CharLocale, c.CharLocaleAsian, c.CharLocaleComplex] if i.Language != 'zxx'] # not None language
2093 loc = Locale(__uilocale__.split('-')[0], __uilocale__.split('-')[1], '')
2094 if locs and loc not in locs:
2095 loc = locs[0]
2096 try:
2097 _.lng = loc.Language + '_' + loc.Country
2098 __loadlang__(_.lng, __l12n__(_.lng))
2099 except:
2100 __trace__()
2101 _.lng = loc.Language
2102 __loadlang__(_.lng, __l12n__(_.lng))
2103 except:
2104 __trace__()
2105 # for testing compiling, we create a not document based namespace
2106 if "_" not in locals():
2107 _ = lambda: None
2108 _.lng = 'en_US'
2109 if not _.lng in __comp__:
2110 __loadlang__(_.lng, __l12n__(_.lng))
2111
2112 _.decimal = __l12n__(_.lng)['DECIMAL']
2113
2114 rmsp = re.compile(r"[ ]*([=+*/]|==|<=|>=|<>|!=|-[ ]+)[ ]*")
2115 chsp = re.compile(r"[ \t]+")
2116 chch = re.compile(r"(?u)(?<!\w):(?=\w)")
2117
2118 # remove CR characters and split lines
2119 s = re.sub(r'[ \t\r]*(?=\n)', '', s)
2120
2121 # remove full line comments
2122 s = re.sub(r"^[ \t]*[;#][^\n]*", "", s)
2123 s = re.sub(r"(?<=\n)[ \t]*[;#][^\n]*", "", s)
2124
2125 # concatenate lines
2126 __compiled__ = re.sub(r'([^\n]*~[ \t]*\n)+[^\n]*', __concatenation__, s)
2127
2128 # sign original line breaks
2129 s = re.sub("(?<=\n)", __LINEBREAK__ + "\n", __compiled__)
2130
2131 # encode strings
2132 lq = '\'' + __l12n__(_.lng)['LEFTSTRING'].replace("|", "")
2133 rq = '\'' + __l12n__(_.lng)['RIGHTSTRING'].replace("|", "")
2134 __strings__ = []
2135 s = re.sub("(?u)([%s])((?:[^\n%s]|\\\\[%s])*)(?<!\\\\)[%s]" % (lq, rq, rq, rq), __encodestring__, s)
2136 s = re.sub(r'(?u)(?<![0-9])(")(~?\w*)', __encodestring__, s)
2137
2138 # remove extra spaces
2139 s = chsp.sub(" ", s)
2140
2141 # remove inline comments
2142 s = re.sub(r"[ ]*;[^\n]*", "", s)
2143
2144 # n-dash and m-dash as minus signs
2145 s = re.sub(r"(?u)[–—]", "-", s)
2146
2147 # replace procedure names
2148 s = re.sub(r"(?i)^[ ]*(%s)[ ]+" % __l12n__(_.lng)['TO'], "__def__ ", s)
2149 s = re.sub(r"(?i)\n[ ]*(%s)[ ]+" % __l12n__(_.lng)['TO'], "\n__def__ ", s)
2150 subnames = re.findall(r"(?iu)(?<=__def__ )\w+", s)
2151 globs = ""
2152 functions = ["range", "__int__", "__float__", "Random", "Input", "__string__", "len", "round", "abs", "sin", "cos", "sqrt", "log10", "set", "list", "tuple", "re.sub", "re.search", "re.findall", "sorted", "min", "max"]
2153 defaultfunc = ["Print"] # TODO handle all default procedures
2154
2155 if len(subnames) > 0:
2156 globs = "global %s" % ", ".join(subnames)
2157 # search user functions (function calls with two or more arguments need explicit Python parentheses)
2158 ends = __l12n__(_.lng)["END"] # support multiple names of "END"
2159 firstend = ends.split("|")[0]
2160 s = re.sub(r"(?<!:)\b(?:%s)\b" % ends, firstend, s)
2161 __l12n__(_.lng)["END"] = firstend
2162 functions += [ re.findall(r"(?u)\w+",i[0])[0] for i in re.findall(r"""(?iu)(?<=__def__ )([^\n]*)\n # beginning of a procedure
2163 (?:[^\n]*(?<!\b(%(END)s))\n)* # 0 or more lines (not END)
2164 [^\n]*\b(?:%(OUTPUT)s)\b[^\n]*\n # line with OUTPUT (functions = procedures with OUTPUT)
2165 (?:[^\n]*(?<!\b(?:%(END)s))\n)* # 0 or more lines (not END)
2166 [ \t]*\b(?:%(END)s)\b""" % __l12n__(_.lng), s, re.X) ]
2167 __l12n__(_.lng)["END"] = ends
2168 # add line breaks before procedure calls
2169 procedures = set(subnames) - set(functions)
2170 if len(procedures) > 0:
2171 s = re.sub(r"(?<!__def__)(?<![-+=*/])(?<!%s)(?:^|[ \t]+)(" % ")(?<!".join(functions) + "|".join(procedures) + r")(?!\w)", r"\n\1", s)
2172
2173 # substitute LibreLogo functions and specifiers with their Python equivalents
2174 for i in __comp__[_.lng]:
2175 s = re.sub(u"(?u)" + i[0], i[1], s)
2176
2177 indent = 0 # Python indentation level
2178 result = ""
2179 func = re.compile(r"(?iu)(def (\w+))(\‍(.*\‍):)")
2180
2181 # compile to Python
2182 subroutines = re.compile(r"(?iu)(?<!def )(?<![_\w])\b(%s)\b(?![\w(])" % "|".join(subnames + functions + defaultfunc))
2183 operators = re.compile(r"(?iu)(%s)" % "(?:[ ]*([+*/<>]|//|==|<=|>=|<>|!=)[ ]*|[ ]*-[ ]+|(?<! )-[ ]*|[ ]*[*][*][ ]*)") # operators, eg. " - ", "-", "- "
2184 atoms = re.compile(r"(?iu)(%s)" % r"[0-9]+([.,][0-9]+)?|:?\w+([.]\w)?")
2185
2186 # store argument numbers of all subroutines in dictionary "names"
2187 names = {key: 1 for key in functions + defaultfunc}
2188 names["range"] = names["re.sub"] = 3
2189 names["re.search"] = names["re.findall"] = 2
2190
2191 # match a function header
2192 search_funcdef = re.compile(r"(^|\n) *(def (\w+))(\‍([^\n]*\‍):) *(?=\n)")
2193
2194 # "multiline" lambda function to process function headers: add commas to argument list and
2195 # add {"subroutine_name": argument_count} into names using a temporary array
2196 # (instead of using global variable "names" and a new global function to process the matching patterns)
2197 # for example: "def f(x y z):" -> "def f(x,y,z):" and names = {"f": 3}
2198 process_funcdef = lambda r: r.group(1) + r.group(2) + \
2199 [chsp.sub(", ", r.group(4)), names.update({r.group(3): len(re.findall(r"\w+", r.group(4)))})][0]
2200 # process all function headers calling process_funcdef for every matching
2201 # (before parsing Logo expressions line by line, we need to know about all functions,
2202 # because functions can be defined in any order, ie. their calls can be before
2203 # their definitions)
2204 s = search_funcdef.sub(process_funcdef, s)
2205
2206 # process line by line
2207 for i in s.split("\n"):
2208 i = i.strip()
2209
2210 # convert Logo expressions to Python ones using regex based tokenization
2211 # tokens: {startpos: endpos} dictionaries for subroutine names, operators and other tokens
2212
2213 # sub: subroutine tokens = positions of Logo subroutine names
2214 # (without explicit parentheses, for example: "f x" or "f (x*2)", but not "f(x)")
2215 sub = {key: value for (key, value) in [j.span() for j in list(subroutines.finditer(i))]}
2216 if sub != {}:
2217 # op: operator tokens
2218 op = {key: value for (key, value) in [j.span() for j in list(operators.finditer(i))]}
2219 # atom: other tokens (variable names, numbers and function names)
2220 atom = {key: value for (key, value) in [j.span() for j in list(atoms.finditer(i))]}
2221 par = {"pos": 0, "out": "", "sub": sub, "op": op, "atom": atom, "names": names}
2222 if i.startswith(')') and '(' in i:
2223 # replace ")forward(" etc. with spaces temporarily
2224 len_name = i.index('(') + 1
2225 __l2p__(' ' * len_name + i[len_name:], par, False, False)
2226 i = i[:len_name] + par["out"].lstrip()
2227 else:
2228 __l2p__(i, par, False, False)
2229 i = par["out"]
2230 # starting program block
2231 if i[0:1] == '[':
2232 i = i[1:]
2233 indent += 1
2234 # check program stop, for example, in every execution of a loop
2235 result = result + "\n" + " " * indent + "__checkhalt__()\n"
2236 # fix position of ending parenthesis
2237 if i[0:1] == ')':
2238 i = i[1:] + ')'
2239 result = result + "\n" + " " * indent + i
2240 # ending program block
2241 if i[0:1] == ']':
2242 result = result[:-1]
2243 indent -= 1
2244
2245 # colon_to_underline in Logo variables
2246 result = chch.sub("_", result)
2247
2248 # character encoding
2249 result = to_ascii(result).replace(r"\n", "\n")
2250
2251 # decode strings
2252 result = re.sub(__DECODE_STRING_REGEX__, __decodestring__, result)
2253 return to_ascii(globs) + "\n" + result
2254
2256 _.cursor.collapseToStart()
2257 for i in range(1, n):
2258 _.cursor.gotoNextParagraph(False)
2259 try:
2260 _.doc.CurrentController.getViewCursor().gotoRange(_.cursor, False)
2261 except:
2262 __dispatcher__(".uno:Escape")
2263 _.doc.CurrentController.getViewCursor().gotoRange(_.cursor.getStart(), False)
2264
2265g_exportedScripts = left, right, goforward, gobackward, run, stop, home, clearscreen, commandline, __translate__
2266
2267# vim: set shiftwidth=4 softtabstop=4 expandtab:
2268
2269__lng_fallback__ = {
2270'FORWARD':{'en_US': 'forward|fd', 'af': 'voorwaarts|vw', 'am': 'ወደ ፊት|ወደ ፊት', 'ar': 'للأمام|أم', 'ast': 'avanzar|av', 'be': 'наперад|нп', 'br': 'war-raok|fd', 'bs': 'naprijed|fd', 'ca': 'avança|endavant|davant|av', 'ca_valencia': 'avança|avant|davant|av', 'cy': 'ymlaen|fd', 'cs': 'dopředu|do', 'de': 'vor|vr', 'dsb': 'doprědka|dp', 'el': 'μπροστά|μπ|forward|fd', 'eo': 'antaŭen|a', 'es': 'avanza|adelante|av|ad', 'et': 'edasi|e', 'eu': 'aurrera|aur', 'fi': 'eteen|et', 'fr': 'avance|av', 'fy': 'foarút|fu', 'gl': 'reenviada|fd', 'gug': 'tenondépe|td', 'he': 'קדימה|קד', 'hr': 'naprijed|np', 'hsb': 'doprědka|dp', 'hu': 'előre|e', 'is': 'áfram|fr', 'ja': 'すすむ|forward|fd', 'kab': 'zdat|zd', 'kk': 'алға|ал', 'km': 'បញ្ជូន\u200bបន្ត|fd', 'kn': 'ಮುಂದಕ್ಕೆ|fd', 'ko': '앞으로|fd', 'lo': 'ໄປຂ້າງຫນ້າ|fd', 'lt': 'priekin|pr', 'lv': 'uz_priekšu|pr', 'mn': 'урагш|fd', 'mr': 'पुढे|fd', 'nb': 'forover|fd', 'nl': 'vooruit|vu', 'nn': 'fram|framover|forover|fr|forward', 'oc': 'avança|av', 'or': 'ଆଗକୁ|fd', 'pt_BR': 'paraFrente|pf', 'ro': 'forward|fd|înainte', 'ru': 'вперёд|в', 'sid': 'albira|ar', 'sk': 'dopredu|do', 'sl': 'naprej|np', 'sq': 'përpara|fd', 'th': 'เดินหน้า|fd', 'tr': 'ileri|il', 'uk': 'вперед|вп', 'uz': 'oldinga|ol', 'zh_CN': '前进|进|forward|fd', 'zh_TW': '前進|進|forward|fd'},
2271'BACKWARD':{'en_US': 'back|bk', 'af': 'terug|tg', 'am': 'ወደ ኋላ|ወደ ኋላ', 'ar': 'للخلف|خف', 'ast': 'atrás|pt', 'be': 'назад|нз', 'br': 'war-gil|bk', 'bs': 'nazad|bk', 'ca': 'retrocedeix|recula|enrere|re', 'ca_valencia': 'retrocedeix|recula|arrere|re', 'cs': 'vzad|vz', 'de': 'zurück|zk', 'dsb': 'slědk|sk', 'el': 'πίσω|πι|back|bk', 'eo': 'retro|r', 'es': 'retrocede|atras|re|at', 'et': 'tagasi|t', 'eu': 'atzera|atz', 'fi': 'taakse|tk', 'fr': 'recule|re', 'fy': 'tebek|tb', 'gl': 'atrás|bk', 'gug': 'tapykuépe|jere', 'he': 'אחורה|אח', 'hr': 'nazad|nz', 'hsb': 'wróćo|wr', 'hu': 'hátra|h', 'is': 'bakka|bk', 'ja': 'もどる|back|bk', 'kab': 'ɣer deffir', 'kk': 'артқа|ар', 'km': 'ថយក្រោយ|bk', 'kn': 'ಹಿಂದಕ್ಕೆ|bk', 'ko': '뒤로|bk', 'lo': 'ກັບຫຼັງ|bk', 'lt': 'atgal|at', 'lv': 'atpakaļ|at', 'mn': 'буцах|bk', 'mr': 'मागे|bk', 'nb': 'tilbake|bakover|tb', 'nl': 'terug|tg', 'nn': 'tilbake|bakover|tb|back', 'oc': 'recuola|re', 'or': 'ପଛକୁ|bk', 'pt_BR': 'paraTrás|pt', 'ro': 'back|bk|înapoi', 'ru': 'назад|н', 'sid': 'badhera|br', 'sk': 'vzad|vz', 'sl': 'nazaj|nz', 'sq': 'prapa|bk', 'th': 'กลับหลัง|bk', 'tr': 'geri|ge', 'uk': 'назад|нд', 'uz': 'orqaga|or', 'zh_CN': '后退|退|back|bk', 'zh_TW': '後退|退|back|bk'},
2272'TURNLEFT':{'en_US': 'left|turnleft|lt', 'af': 'links|linksaf|li', 'am': 'ግራ|ወደ ግራ ማዟሪያ|ወደ ግራ', 'ar': 'لليسار', 'ast': 'izquierda|xiraizquierda|xi', 'be': 'улева|паварот_улева|лв', 'bs': 'lijevo|skrenilijevo|lt', 'ca': 'esquerra|giraesquerra|gira.esquerra|ge', 'ca_valencia': 'esquerra|giraesquerra|gira.esquerra|ge', 'cs': 'vlevo|vl', 'de': 'links|li', 'dsb': 'nalěwo|nl', 'el': 'αριστερά|στροφήαριστερά|αρ|left|turnleft|lt', 'eo': 'maldekstren|turnu_liven|lt', 'es': 'izquierda|giraizquierda|iz|gi', 'et': 'vasakule|vasakpööre|v', 'eu': 'ezkerra|ezkerrera|ezk', 'fi': 'vasemmalle|vas', 'fr': 'gauche|tournegauche|ga', 'fy': 'links|linksôf|lf', 'gl': 'esquerda|voltaesquerda|lt', 'gug': 'asúpe|jereasúpe|as', 'he': 'שמאלה|לפנותשמאלה|פנייהשמאלה|שמ', 'hr': 'lijevo|okreni lijevo|li', 'hsb': 'nalěwo|nl', 'hu': 'balra|b', 'is': 'vinstri|snúavinstri|vi', 'ja': '左|左に曲がる|left|turnleft|lt', 'kab': 'ayeffus', 'kk': 'солға|солға_бұрылу|с', 'km': 'ឆ្វេង|turnleft|lt', 'kn': 'ಎಡ|ಎಡಕ್ಕೆ ತಿರುಗಿಸು|lt', 'ko': '왼쪽|왼쪽으로회전|lt', 'lo': 'ຊ້າຍ|ລ້ຽວຊ້າຍ|lt', 'lt': 'kairėn|kr', 'lv': 'pa_kreisi|kreisi|gk', 'mn': 'зүүн|зүүнэргэх|lt', 'mr': 'डावे|डावीकडे वळा|lt', 'nb': 'venstre|snu venstre|ve', 'nl': 'links|linksaf|ls', 'nn': 'venstre|snu venstre|ve|left', 'oc': 'esquerra|viraesquerra|es', 'or': 'ବାମକୁ|ବାମକୁ ଯାଆନ୍ତୁ|lt', 'pt_BR': 'paraEsquerda|pe|girarEsquerda|giraEsquerda', 'ro': 'left|turnleft|lt|stânga', 'ru': 'влево|поворот_налево|л', 'sid': 'gura|guraraqole|gr', 'sk': 'vľavo|vl', 'sl': 'levo|obrnilevo|lv', 'sq': 'majtaj|kthehumajtas|lt', 'th': 'ซ้าย|เลี้ยวซ้าย|lt', 'tr': 'sol|soladön|sl', 'uk': 'ліворуч|поворот_ліворуч|лв', 'uz': 'chap|chapga_burilish|chp', 'zh_CN': '左|左转|left|turnleft|lt', 'zh_TW': '左|左轉|left|turnleft|lt'},
2273'TURNRIGHT':{'en_US': 'right|turnright|rt', 'af': 'regs|regsaf|re', 'am': 'ቀኝ|ወደ ቀኝ ማዟሪያ|ወደ ቀኝ', 'ar': 'لليمين', 'ast': 'drecha|xiradrecha|xd', 'be': 'управа|паварот_управа|пр', 'br': 'dehou|trotudehou|de', 'bs': 'desno|skrenidesno|rt', 'ca': 'dreta|giradreta|gira.dreta|gd', 'ca_valencia': 'dreta|giradreta|gira.dreta|gd', 'cs': 'vpravo|vp', 'de': 'rechts|re', 'dsb': 'napšawo|np', 'el': 'δεξιά|στροφήδεξιά|δξ|right|turnright|rt', 'eo': 'dekstren|turnu_dekstren|dt', 'es': 'derecha|giraderecha|de|gd', 'et': 'paremale|parempööre|p', 'eu': 'eskuina|eskuinera|esk', 'fi': 'oikealle|oik', 'fr': 'droite|tournedroite|dr', 'fy': 'rjochts|rjochtsôf|rs', 'gl': 'dereita|voltadereita|rt', 'gug': 'akatúa|jereakatúa|ak', 'he': 'ימינה|לפנותימינה|פנייהימינה|ימ', 'hr': 'desno|okreni desno|de', 'hsb': 'naprawo|np', 'hu': 'jobbra|j', 'is': 'hægri|snúahægri|hæ', 'ja': '右|右に曲がる|right|turnright|rt', 'kab': 'azelmaḍ', 'kk': 'оңға|оңға_бұрылу|о', 'km': 'ស្ដាំ|turnright|rt', 'kn': 'ಬಲ|ಬಲಕ್ಕೆ ತಿರುಗಿಸು|rt', 'ko': '오른쪽|오른쪽으로회전|rt', 'lo': 'ຂວາ|ລ້ຽວຂວາ|rt', 'lt': 'dešinėn|dš', 'lv': 'pa_labi|labi|gl', 'mn': 'баруун|баруунэргэлт|rt', 'mr': 'उजवी|उजवीकडे वळा|rt', 'nb': 'høyre|snu høyre|hg', 'nl': 'rechts|rechtsaf|rs', 'nn': 'høgre|snu høgre|hg|right', 'oc': 'dreita|virardreita|de', 'or': 'ଡ଼ାହାଣ|ଡ଼ାହାଣକୁ ଯାଆନ୍ତୁ|rt', 'pt_BR': 'paraDireita|pd|girarDireita|giraDireita', 'ro': 'right|turnright|rt|dreapta', 'ru': 'вправо|поворот_направо|п', 'sid': 'qiniite|qiniitiraqoli|qt', 'sk': 'vpravo|vp', 'sl': 'desno|obrnidesno|ds', 'sq': 'djathtas|kthehudjathtas|rt', 'th': 'ขวา|เลี้ยวขวา|rt', 'tr': 'sağ|sağadön|sğ', 'uk': 'праворуч|поворот_праворуч|пр', 'uz': 'o‘ng|o‘ngga_burilish|o‘n', 'zh_CN': '右|右转|right|turnright|rt', 'zh_TW': '右|右轉|right|turnright|rt'},
2274'PENUP':{'en_US': 'penup|pu', 'af': 'penop|po', 'am': 'ብዕር ወደ ላይ |pu', 'ar': 'ارفع_القلم|ارفع', 'ast': 'llapizxubir|lx', 'bs': 'pengore|pu', 'ca': 'aixeca.llapis|al', 'ca_valencia': 'alça.llapis|al', 'cs': 'peronahoru|pn', 'de': 'fliegen', 'dsb': 'pisakgórjej|pg', 'el': 'γραφίδαπάνω|γπ|penup|pu', 'eo': 'plumofor|pf', 'es': 'sinpluma|subirlapiz|sp|sl', 'et': 'pliiats_üles|pü', 'eu': 'lumagora|lg', 'fi': 'kynäylös|ky', 'fr': 'levecrayon|lc', 'fy': 'penomheech|po', 'gl': 'senestilo|se', 'gug': "bolígrafo'ỹre|bỹ", 'he': 'להריםעט|עטלמעלה|הרםעט|לע', 'hr': 'olovka gore|og', 'hsb': 'pisakhorje|ph', 'hu': 'tollatfel|tf', 'is': 'penniupp|pu', 'ja': 'ペンをあげる|penup|pu', 'kab': 'saliakeryun|ak', 'kk': 'қаламды_көтеру|қк', 'kn': 'ಲೇಖನಿಎತ್ತು|pu', 'ko': '펜을위로|pu', 'lo': 'ປາກກາຂື້ນ|pu', 'lt': 'eisim|es|pakelk.pieštuką|pakelk.trintuką', 'lv': 'pacelt_spalvu|ps', 'mn': 'үзэгөргөх|pu', 'mr': 'पेनअप|pu', 'nb': 'penn opp|po|penup', 'nl': 'penomhoog|po', 'nn': 'penn opp|po|penup', 'oc': 'levagredon|lg', 'or': 'ପେନଉପରକୁ|pu', 'pt_BR': 'usarNada|un|useNada', 'ro': 'penup|pu|stilousus', 'ru': 'поднять_перо|пп', 'sid': 'biireworora|bw', 'sk': 'perohore|ph', 'sl': 'perogor|pg', 'sq': 'lapsilart|pu', 'th': 'ปากกาขึ้น|pu', 'tr': 'kalemyukarı|ky', 'uk': 'підніми_перо|пп', 'uz': 'ruchkani_ko‘tarish|rk', 'zh_CN': '提笔|抬笔|penup|pu', 'zh_TW': '提筆|penup|pu'},
2275'PENDOWN':{'en_US': 'pendown|pd', 'af': 'penaf|pa', 'am': 'ብዕር ወደ ታች |pd', 'ar': 'أنزل_القلم|أنزل', 'ast': 'llapizbaxar|lb', 'bs': 'pendole|pd', 'ca': 'baixa.llapis|bl', 'ca_valencia': 'baixa.llapis|bl', 'cs': 'perodolů|pd', 'de': 'laufen', 'dsb': 'pisakdołoj|pd', 'el': 'γραφίδακάτω|γκ|pendown|pd', 'eo': 'plumoek|pe', 'es': 'conpluma|bajarlapiz|cp|bl', 'et': 'pliiats_alla|pa', 'eu': 'lumabehera|lb', 'fi': 'kynäalas|ka', 'fr': 'baissecrayon|bc', 'fy': 'penomleech|po', 'gl': 'conestilo|ce', 'gug': 'bolígrafo|bo', 'he': 'להורידעט|עטלמטה|הורדעט|הע', 'hr': 'olovka dolje|od', 'hsb': 'pisakdele|pd', 'hu': 'tollatle|tl', 'is': 'penniniður|pn', 'ja': 'ペンをおろす|pendown|pd', 'kab': 'siderakeryun|ik', 'kk': 'қаламды_түсіру|қт', 'km': 'pendown', 'kn': 'ಲೇಖನಿಇಳಿಸು|pd', 'ko': '펜아래로|pd', 'lo': 'ປາກກາລົງ|pd', 'lt': 'piešim|pš|nuleisk.pieštuką', 'lv': 'nolikt_spalvu|ns', 'mn': 'үзэгбуулгах|pd', 'mr': 'पेनडाउन|pd', 'nb': 'penn ned|pn|pendown', 'nl': 'penneer|pn', 'nn': 'penn ned|pn|pendown', 'oc': 'abaissagredon|bg', 'or': 'ପେନତଳକୁ|pd', 'pt_BR': 'usarLápis|ul|useLápis', 'ro': 'pendown|pd|stiloujos', 'ru': 'опустить_перо|оп', 'sid': 'biireworora|bw', 'sk': 'perodolu|pd', 'sl': 'perodol|pd', 'sq': 'lapsiposhtë|pd', 'th': 'ปากกาลง|pd', 'tr': 'kalemaşağı|ka', 'uk': 'опусти_перо|оп', 'vec': 'penabasa|pd', 'zh_CN': '下笔|落笔|pendown|pd', 'zh_TW': '下筆|pendown|pd'},
2276'HOME':{'en_US': 'home', 'af': 'tuis', 'am': 'ቤት', 'ar': 'المنزل', 'as': 'ঘৰ', 'ast': 'aniciu', 'be': 'пачатак', 'bn_IN': 'Home', 'br': 'Degemer', 'bs': 'kući', 'ca': 'inici|centre', 'ca_valencia': 'inici|centre', 'ckb': 'ماڵەوە', 'cy': 'cartref', 'cs': 'domů', 'de': 'anfang', 'dgo': 'घर', 'dsb': 'zachopjeńk', 'el': 'αρχή|home', 'eo': 'hejmen', 'es': 'inicio|casa|centro', 'et': 'koju', 'eu': 'hasiera', 'fi': 'kotiin', 'fr': 'origine', 'fy': 'thús', 'gd': 'dhachaigh', 'gl': 'inicio', 'gug': 'óga', 'gu': 'ઘર', 'he': 'בית', 'hi': 'घर', 'hr': 'polazno', 'hsb': 'spočatk', 'hu': 'haza', 'id': 'beranda', 'is': 'heim', 'ja': 'もとの場所へ|home', 'kab': 'axxam', 'kk': 'басы', 'km': 'ដើម', 'kn': 'ನೆಲೆ', 'kok': 'घरGhor', 'ko': '처음', 'lo': 'ໜ້າທຳອິດ', 'lt': 'namo', 'lv': 'sākums', 'ml': 'ആസ്ഥാനം', 'mn': 'нүүр хуудас', 'mr': 'होम', 'my': 'အချို့', 'nb': 'hjem', 'nl': 'thuis', 'nn': 'heim|home', 'oc': 'acuèlh', 'or': 'ମୂଳ ସ୍ଥାନ', 'pa_IN': 'ਘਰ', 'pt_BR': 'paraCentro|centro|pc', 'ro': 'home|acasă', 'ru': 'начало', 'sat': 'ओड़ाक्', 'sd': 'گهر', 'sid': 'Mine', 'si': 'සමහර', 'sk': 'domov', 'sl': 'začetek', 'sq': 'shtëpia', 'te': 'నివాసం', 'th': 'บ้าน', 'tr': 'başlangıç', 'uk': 'центр', 'vi': 'Home', 'zh_CN': '归位|回归|回家|家|home', 'zh_TW': '回家|家|home'},
2277'POINT':{'en_US': 'point', 'af': 'punt', 'am': 'ነጥቦች', 'ar': 'نقطة', 'as': 'বিন্দু', 'ast': 'puntu', 'be': 'пункт', 'bn_IN': 'পয়েন্ট', 'br': 'poent', 'bs': 'tačka', 'ca': 'punt', 'ca_valencia': 'punt', 'ckb': 'خاڵ', 'cy': 'pwynt', 'cs': 'bod|puntík', 'de': 'punkt', 'dsb': 'dypk', 'el': 'σημείο|point', 'eo': 'punkto', 'es': 'punto', 'et': 'punkt', 'eu': 'puntua', 'fi': 'piste', 'fy': 'punt', 'gd': 'puing', 'gl': 'punto', 'gug': 'kyta', 'gu': 'બિંદુ', 'he': 'נקודה', 'hi': 'बिंदु', 'hr': 'točka', 'hsb': 'dypk', 'hu': 'pont', 'id': 'poin', 'is': 'punktur', 'ja': '点|point', 'kab': 'agaz', 'ka': 'წერტილი', 'kk': 'нүкте', 'km': 'ចំណុច', 'kn': 'ಬಿಂದುಗಳು', 'ko': '점', 'lo': 'ຈຸດ', 'lt': 'skritulys', 'lv': 'punkts', 'ml': 'പോയിന്റ്', 'mn': 'цэг', 'mr': 'बिंदू', 'my': 'အမှတ်', 'nb': 'punkt', 'ne': 'प्वाइन्ट', 'nl': 'punt', 'nn': 'punkt|point', 'oc': 'punt', 'or': 'ବିନ୍ଦୁ', 'pa_IN': 'ਬਿੰਦੂ', 'pt_BR': 'ponto', 'ro': 'point|punct', 'ru': 'точка', 'sid': 'bixxille', 'si': 'ලක්ෂ්\u200dය', 'sk': 'bod', 'sl': 'točka', 'sq': 'pikë', 'ta': 'புள்ளி', 'te': 'బిందువు', 'th': 'จุด', 'tr': 'nokta', 'ug': 'نۇقتا', 'uk': 'точка', 'vi': 'điểm', 'zh_CN': '点|point', 'zh_TW': '點|point'},
2278'CIRCLE':{'en_US': 'circle', 'af': 'sirkel', 'am': 'ክብ', 'ar': 'دائرة', 'as': 'বৃত্ত', 'ast': 'círculu', 'be': 'акружына', 'bn_IN': 'বৃত্ত', 'br': "kelc'h", 'bs': 'krug', 'ca': 'cercle', 'ca_valencia': 'cercle', 'ckb': 'بازنە', 'cy': 'cylch', 'cs': 'kruh', 'de': 'kreis', 'dsb': 'krejz', 'el': 'κύκλος|circle', 'eo': 'cirklo', 'es': 'circulo|círculo', 'et': 'ring', 'eu': 'zirkulua', 'fi': 'ympyrä', 'fr': 'cercle', 'fy': 'sirkel', 'gd': 'cearcall', 'gl': 'círculo', 'gug': 'círculo', 'gu': 'વતૃળ', 'he': 'עיגול', 'hi': 'वृत्त', 'hr': 'krug', 'hsb': 'kruh', 'hu': 'kör', 'id': 'lingkaran', 'is': 'hringur', 'ja': '円|circle', 'kab': 'taẓayert', 'ka': 'წრე', 'kk': 'шеңбер', 'km': 'រង្វង់', 'kn': 'ವೃತ್ತ', 'ko': '원', 'lo': 'ວົງມົນ', 'lt': 'apskritimas', 'lv': 'riņķis', 'ml': 'വൃത്തം', 'mn': 'тойрог', 'mr': 'वर्तुळ', 'my': 'စက်ဝိုင်းပုံစံ', 'nb': 'sirkel', 'ne': 'वृत्त', 'nl': 'cirkel', 'nn': 'sirkel|circle', 'oc': 'cercle', 'or': 'ବୃତ୍ତ', 'pa_IN': 'ਚੱਕਰ', 'pt_BR': 'círculo|circunferência', 'ro': 'circle|cerc', 'ru': 'круг', 'sid': 'doyicho', 'si': 'කවය', 'sk': 'kruh', 'sl': 'krog', 'sq': 'rreth', 'ta': 'வட்டம்', 'te': 'వృత్తము', 'th': 'วงกลม', 'tr': 'daire', 'ug': 'چەمبەر', 'uk': 'коло', 'vec': 'sercio', 'vi': 'Tròn', 'zh_CN': '圆|circle', 'zh_TW': '圓|circle'},
2279'ELLIPSE':{'en_US': 'ellipse', 'af': 'ellips', 'am': 'ኤሊፕስ', 'ar': 'بيضاوي', 'as': 'উপবৃত্ত', 'ast': 'elipse', 'be': 'эліпс', 'bn_IN': 'উপবৃত্ত', 'br': 'elipsenn', 'bs': 'elipsa', 'ca': 'el·lipse', 'ca_valencia': 'el·lipse', 'ckb': 'هێلکەیی', 'cy': 'elips', 'cs': 'elipsa', 'dsb': 'elipsa', 'el': 'έλλειψη|ellipse', 'eo': 'elipso', 'es': 'elipse', 'et': 'ellips', 'eu': 'elipsea', 'fi': 'ellipsi', 'fy': 'elips', 'gd': 'eileaps', 'gl': 'elipse', 'gug': 'elipse', 'gu': 'ઉપવલય', 'he': 'אליפסה', 'hi': 'दीर्घवृत्त', 'hr': 'elipsa', 'hsb': 'elipsa', 'hu': 'ellipszis', 'id': 'elips', 'is': 'sporbaugur', 'ja': '楕円|ellipse', 'kab': 'taglayt', 'ka': 'ელიფსი', 'kk': 'эллипс', 'km': 'ពង\u200bក្រពើ', 'kn': 'ದೀರ್ಘವೃತ್ತ', 'ko': '타원', 'lo': 'ຮູບວົງລີ', 'lt': 'elipsė', 'lv': 'elipse', 'ml': 'അണ്ഡവൃത്തം', 'mn': 'эллипс', 'mr': 'दीर्घवृत्त', 'my': 'ဘဲဥပုံ', 'ne': 'दीर्घवृत्त', 'nl': 'ellips', 'oc': 'ellipsa', 'or': 'ଅଣ୍ଡାକୃତ', 'pa_IN': 'ਅੰਡਾਕਾਰ', 'pt_BR': 'elipse', 'ro': 'ellipse|elipsă', 'ru': 'эллипс', 'sid': 'suduudaamo', 'si': 'ඉලිප්සය', 'sk': 'elipsa', 'sl': 'elipsa', 'sq': 'elips', 'ta': 'நீள்வட்டம்', 'te': 'దీర్ఘవృత్తం', 'th': 'วงรี', 'tr': 'elips', 'ug': 'ئېللىپىس', 'uk': 'еліпс', 'vec': 'ełise', 'vi': 'Bầu dục', 'zh_CN': '椭圆|ellipse', 'zh_TW': '橢圓|ellipse'},
2280'SQUARE':{'en_US': 'square', 'af': 'vierkant', 'am': 'ስኴር', 'ar': 'مربع', 'as': 'বৰ্গ', 'ast': 'cuadráu', 'be': 'квадрат', 'bn_IN': 'বর্গক্ষেত্র', 'br': 'karrez', 'bs': 'kvadrat', 'ca': 'quadrat', 'ca_valencia': 'quadrat', 'ckb': 'چوارگۆشە', 'cy': 'sgwâr', 'cs': 'čtverec', 'de': 'quadrat', 'dsb': 'kwadrat', 'el': 'τετράγωνο|square', 'eo': 'kvadrato', 'es': 'cuadrado', 'et': 'ruut', 'eu': 'karratu', 'fi': 'neliö', 'fr': 'carré', 'fy': 'fjouwerkant', 'gd': 'ceàrnag', 'gl': 'cadrado', 'gug': 'cuadrado', 'gu': 'ચોરસ', 'he': 'ריבוע', 'hi': 'वर्ग', 'hr': 'kvadrat', 'hsb': 'kwadrat', 'hu': 'négyzet', 'id': 'kotak', 'is': 'ferningur', 'ja': '正方形|square', 'kab': 'amkuẓ', 'ka': 'კვადრატი', 'kk': 'шаршы', 'km': 'ការេ', 'kn': 'ಚೌಕ', 'ko': '정사각형', 'lo': 'ສີ່ຫລ່ຽມຈັດຕຸລັດ', 'lt': 'kvadratas', 'lv': 'kvadrāts', 'ml': 'സമചതുരം', 'mn': 'квадрат', 'mr': 'चौरस', 'my': 'စတုရန်း', 'nb': 'kvadrat', 'ne': 'वर्ग', 'nl': 'vierkant', 'nn': 'kvadrat|square', 'oc': 'carrat', 'or': 'ବର୍ଗାକାର', 'pa_IN': 'ਵਰਗ', 'pt_BR': 'quadrado', 'ro': 'square|pătrat', 'ru': 'квадрат', 'sid': 'isikuwere', 'si': 'සමචතුරශ්\u200dරය', 'sk': 'štvorec', 'sl': 'kvadrat', 'sq': 'katror', 'ta': 'சதுரம்', 'te': 'చతురస్రము', 'th': 'สี่เหลี่ยมจัตุรัส', 'tr': 'kare', 'ug': 'كۋادرات', 'uk': 'квадрат', 'vec': 'cuadrà', 'vi': 'Vuông', 'zh_CN': '正方形|方|square', 'zh_TW': '正方形|方|square'},
2281'RECTANGLE':{'en_US': 'rectangle', 'af': 'reghoek', 'am': 'አራት ማእዘን', 'ar': 'مستطيل', 'as': 'আয়ত', 'ast': 'rectángulu', 'be': 'прамавугольнік', 'bn_IN': 'আয়তক্ষেত্র', 'br': 'reizhkorneg', 'bs': 'pravougao', 'ckb': 'لاکێشە', 'cy': 'petryal', 'cs': 'obdélník', 'de': 'rechteck', 'dsb': 'pšawokut', 'el': 'ορθογώνιο|rectangle', 'eo': 'ortangulo', 'es': 'rectángulo', 'et': 'ristkülik', 'eu': 'laukizuzena', 'fi': 'suorakulmio', 'fy': 'rjochthoek', 'gd': 'ceart-cheàrnach', 'gl': 'rectángulo', 'gug': 'rectángulo', 'gu': 'લંબચોરસ', 'he': 'מלבן', 'hi': 'आयत', 'hr': 'pravokutnik', 'hsb': 'praworóžk', 'hu': 'téglalap', 'id': 'persegi', 'is': 'rétthyrningur', 'ja': '長方形|rectangle', 'kab': 'asrem', 'ka': 'მართკუთხედი', 'kk': 'тіктөртбұрыш', 'km': 'ចតុកោណកែង', 'kn': 'ಆಯತ', 'ko': '직사각형', 'lo': 'ສີຫລ່ຽມສາກ', 'lt': 'stačiakampis', 'lv': 'taisnstūris', 'ml': 'ചതുര്ഭുജം', 'mn': 'тэгш өнцөгт', 'mr': 'आयत', 'my': 'ထောင့်မှန်စတုဂံ', 'nb': 'rektangel', 'ne': 'आयात', 'nl': 'rechthoek', 'nn': 'rektangel|rectangle', 'or': 'ଆୟତକ୍ଷେତ୍ର', 'pa_IN': 'ਚਤੁਰਭੁਜ', 'pt_BR': 'retângulo', 'ro': 'rectangle|dreptunghi', 'ru': 'прямоугольник', 'sid': 'rekitaangile', 'si': 'ත්\u200dරිකෝණය', 'sk': 'obdĺžnik', 'sl': 'pravokotnik', 'sq': 'drejtkëndësh', 'ta': 'செவ்வகம்', 'te': 'దీర్ఘ చతురస్రము', 'th': 'สี่เหลี่ยมผืนผ้า', 'tr': 'dikdörtgen', 'ug': 'تىك تۆت بۇلۇڭ', 'uk': 'прямокутник', 'vec': 'retàngoło', 'vi': 'Hình chữ nhật', 'zh_CN': '矩形|矩|长方形|rectangle', 'zh_TW': '長方形|矩|rectangle'},
2282'LABEL':{'en_US': 'label', 'af': 'byskrif', 'am': 'ምልክት', 'ar': 'اللصيقة', 'as': 'লেবেল', 'ast': 'etiqueta', 'be': 'метка', 'bn_IN': 'লেবেল', 'br': 'tikedenn', 'bs': 'naljepnica', 'ca': 'etiqueta', 'ca_valencia': 'etiqueta', 'ckb': 'پێناسکراو', 'cs': 'text', 'de': 'schreibe', 'dgo': 'लेबल', 'dsb': 'pomjenjenje', 'el': 'ετικέτα|label', 'eo': 'etikedo', 'es': 'etiqueta', 'et': 'silt', 'eu': 'etiketa', 'fi': 'selite', 'fr': 'étiquette', 'fy': 'lebel', 'gd': 'leubail', 'gl': 'etiqueta', 'gug': 'etiqueta', 'gu': 'લેબલ', 'he': 'תווית', 'hi': 'लेबल', 'hr': 'oznaka', 'hsb': 'popis', 'hu': 'címke', 'is': 'skýring', 'ja': 'ラベル|label', 'kab': 'tabzimt', 'kk': 'белгі', 'km': 'ស្លាក', 'kn': 'ಲೇಬಲ್', 'ko': '레이블', 'lo': 'ປ້າຍ', 'lt': 'piešk.tekstą|pštk', 'lv': 'etiķete', 'ml': 'ലേബല്\u200d', 'mn': 'пайз', 'mr': 'लेबल', 'nb': 'etikett', 'nl': 'bijschrift', 'nn': 'etikett|label', 'oc': 'etiqueta', 'or': 'ନାମପଟି', 'pa_IN': 'ਲੇਬਲ', 'pt_BR': 'rotular|rotule', 'ro': 'label|etichetă', 'ru': 'надпись', 'sa_IN': 'अंकितकम्', 'sat': 'चिखना़', 'sd': 'ليبلُ', 'sid': 'somaasincho', 'si': 'ලේබලය', 'sk': 'popis', 'sl': 'oznaka', 'sq': 'etiketë', 'ta': 'லேபிள்', 'te': 'లేబుల్', 'th': 'ป้ายกำกับ', 'tr': 'etiket', 'ug': 'ئەن', 'uk': 'напис', 'vi': 'Nhãn', 'zh_CN': '标签|label', 'zh_TW': '標籤|label'},
2283'PENCOLOR':{'en_US': 'pencolor|pencolour|linecolor|pc', 'af': 'penkleur|lynkleur|pk', 'am': 'የ ብዕር ቀለም|የ ብዕር ቀለም|የ መስመር ቀለም|ብ/ቀ', 'ar': 'لون_القلم', 'ast': 'llapizcolor|lliniacolor|lc', 'bs': 'bojaolovke|bojaolovke|bojalinije|pc', 'ca': 'color.llapis|color.línia|cl', 'ca_valencia': 'color.llapis|color.línia|cl', 'ckb': '\u202bpencolor|pencolour|linecolor|pc', 'cs': 'barvapera|barvačáry|bp', 'de': 'stiftfarbe|linienfarbe|sf|lf', 'dsb': 'barwapisaka|barwalinije|bp|bl', 'el': 'χρώμαγραφίδας|χρώμαγραμμής|χγ|pencolor|pencolour|linecolor|pc', 'eo': 'plumkoloro|linikoloro|pk', 'es': 'color.lápiz|color.línea|cl', 'et': 'pliiatsi_värv|joonevärv|pv|jv', 'eu': 'lumakolorea|marrakolorea|lk', 'fi': 'kynänväri|kv', 'fr': 'couleurcrayon|ccrayon|couleurligne|cc', 'fy': 'penkleur|linekleur|pk', 'gl': 'estilocor|estilodacor|liñadecor|ec', 'gug': "sa'y.lápiz|sa'y.línea|cl", 'he': 'צבעעט|צבעט|צבעקו|צק', 'hr': 'boja olovke|boja olovke|boja linije|bo', 'hsb': 'barbapisaka|barbalinije|bp|bl', 'hu': 'tollszín|tollszín!|tsz!?|vonalszín', 'is': 'pennalitur|línulitur|pl', 'ja': 'ペンの色|線の色|pencolor|pc', 'kab': 'iniakeryun|inakeryun|inizirg|nk', 'kk': 'қалам_түсі|сызық_түсі|т', 'km': 'ពណ៌\u200bប៉ិក|pencolour|linecolor|pc', 'kn': 'ಲೇಖನಿಬಣ್ಣ|ಲೇಖನಿಯಬಣ್ಣ|ರೇಖೆಬಣ್ಣ|pc', 'ko': '펜색상|펜색상|선색상|pc', 'lo': 'pencolor|ສີປາກກາ|ສີເສັ້ນ|pc', 'lt': 'pieštuko.spalva|linijos.spalva|psp', 'lv': 'spalvas_krāsa|linijas_krāsa|sk', 'mn': 'үзэгний өнгө|шугамын өнгө|үөн|шөн', 'mr': 'पेनकलर|पेनकलर|लाइनकलर|pc', 'nb': 'pennfarge|pencolour|pf|linjefarge|pc', 'nl': 'penkleur|lijnkleur|pk', 'nn': 'pennfarge|linjefarge|pf|pencolor', 'oc': 'colorgredon|cgredon|colorlinha|cc', 'or': 'ପେନରଙ୍ଗ|ପେନରଙ୍ଗ|ଧାଡ଼ିରଙ୍ଗ|pc', 'pt_BR': 'mudarCorDoLápis|mCorLa|mudeCorDoLápis|mudecl', 'ro': 'pencolor|pencolour|linecolor|pc|culoarestilou', 'ru': 'цвет_пера|цвет_линии|ц', 'sid': 'biiretekuula|biiretekuula|xuruurukuula|bk', 'sk': 'farbapera|farbačiary|fp|fč', 'sl': 'barvaperesa|barvačrte|bp', 'sq': 'ngjyraestilolapsit|ngjyraestilolapsit|ngjyraevijës|pc', 'th': 'pencolor|สีปากกา|สีเส้น|pc', 'tr': 'kalemrengi|kalemrengi|satırrengi|kr', 'uk': 'колір_пера|колір_лінії|кп', 'vec': 'cołorpena|cołorpena|cołorłinea|pc', 'zh_CN': '笔颜色|笔色|线颜色|线色|pencolor|pencolour|linecolor|pc', 'zh_TW': '筆顏色|筆色|線顏色|線色|筆色彩|線色彩|pencolor|pencolour|linecolor|pc'},
2284'ANY':{'en_US': 'any', 'af': 'elke', 'am': 'ማንኛውም', 'ar': 'أي', 'as': 'যিকোনো', 'ast': 'cualquier', 'bn_IN': 'যেকোনো', 'bs': 'bilo koji', 'ca': 'qualsevol', 'ca_valencia': 'qualsevol', 'ckb': 'هەریەکێک', 'cy': 'unrhyw un', 'cs': 'libovolně|lib', 'de': 'beliebig|bel', 'dgo': 'कोई बी', 'dsb': 'někaki|nk', 'el': 'όλα|any', 'eo': 'ajna', 'es': 'cualquiera', 'et': 'mistahes', 'eu': 'edozein', 'fi': 'jokin', 'fr': 'tout', 'fy': 'elke', 'gd': 'gin', 'gl': 'calquera', 'gug': 'mavave', 'gu': 'કોઇપણ', 'he': 'כלשהו', 'hi': 'कोई भी', 'hr': 'bilo koja', 'hsb': 'někajki', 'hu': 'tetszőleges|tetsz', 'is': 'hvað sem er', 'ja': 'なんでも|どこでも|乱数|any', 'kab': 'a win yellan', 'kk': 'кез-келген', 'km': 'ណាមួយ', 'kn': 'ಯಾವುದಾದರೂ', 'kok': 'कोणूयKoncheim', 'ko': '모두', 'lo': 'ໃດໆ', 'lt': 'bet.kas', 'lv': 'jebkurš', 'ml': 'ഏതെങ്കിലും', 'mn': 'хамаагүй|хам', 'mr': 'कोणतेहि', 'nb': 'alle', 'nl': 'elke', 'nn': 'alle|any', 'oc': 'tot', 'or': 'ଯେକୌଣସି', 'pa_IN': 'ਕੋਈ ਵੀ', 'pt_BR': 'qualquer', 'ro': 'any|oricare', 'ru': 'любой', 'sa_IN': 'कांह तॊ', 'sat': 'जाहां गे', 'sd': 'ڪابە', 'sid': 'ayee', 'sk': 'ľubovoľný', 'sl': 'poljubno', 'sq': 'çdo', 'te': 'ఏదైనా', 'th': 'ใดๆ', 'tr': 'herhangi', 'uk': 'довільний', 'vec': 'tuto', 'zh_CN': '任意|any', 'zh_TW': '任一|any'},
2285'PENWIDTH':{'en_US': 'pensize|penwidth|linewidth|ps', 'af': 'pengrootte|pendikte|penbreedte|pg', 'am': 'የ ብዕር መጠን |የ ብዕር ስፋት |የ መስመር ስፋት |ps', 'ar': 'حجم_القلم|عرض_القلم', 'ast': 'llapiztamañu|llapizanchor|lliniaanchor|lt', 'bs': 'veličinaolovke|širinaolovke|širinalinije|ps', 'ca': 'mida.llapis|mida.línia|ml', 'ca_valencia': 'mida.llapis|mida.línia|ml', 'ckb': '\u202bpensize|penwidth|linewidth|ps', 'cs': 'tloušťkapera|tloušťkačáry|tp', 'de': 'stiftbreite|linienbreite|sb|lb', 'dsb': 'wjelikosćpisaka|šyrokosćpisaka|šyrokosćlinije|wp|šl', 'el': 'μέγεθοςγραφίδας|πλάτοςγραφίδας|πλάτοςγραμμής|μγ|pensize|penwidth|linewidth|ps', 'eo': 'plumlarĝo|plumgrando|pg', 'es': 'tamaño.lápiz|tl', 'et': 'pliiatsi_paksus|pliiatsi_jämedus|joonepaksus|joonelaius|jl', 'eu': 'lumatamaina|lumazabalera|marrazabalera|lz', 'fi': 'kynänleveys|kl', 'fr': 'tailleplume|taillecrayon|largeurligne|ta', 'fy': 'pengrutte|pentsjokte|penbreedte|pg', 'gl': 'estilotamaño|estilolargura|larguraliña|et', 'gug': 'tamaño.bolígrafo|tb', 'he': 'גודלעט|עוביעט|רוחבעט|גע', 'hr': 'veličina olovke|širina olovke|širina linije|vo', 'hsb': 'wulkosćpisaka|šěrokosćpisaka|šěrokosćlinije|wp|wl', 'hu': 'tollvastagság|tollvastagság!|tv!?|vonalvastagság', 'is': 'pennastærð|pennabreidd|línubreidd|ps', 'ja': 'ペンの太さ|線の太さ|penwidth|ps', 'kab': 'teɣziastillu|teɣziakeryun|tehrizirg|ts', 'kk': 'қалам_өлшемі|қалам_жуандығы|сызық_жуандығы|сж', 'km': 'ទំហំ\u200bប៉ិក|penwidth|linewidth|ps', 'kn': 'ಲೇಖನಿಗಾತ್ರ|ಲೇಖನಅಗಲ|ರೇಖೆಅಗಲ|ps', 'ko': '펜크기|펜너비|선너비|ps', 'lo': 'ຂະໜາດປາກກາ|ຄວາມກ້ວາງປາກກາ|ຄວາມກ້ວາງຂອງເສັ້ນ|ps', 'lt': 'pieštuko.storis|linijos.storis|ps', 'lv': 'spalvas_izmērs|spalvas_platums|līnijas_platums|sp', 'mn': 'үзэгний өргөн|шугамын өргөн|үөр|шөр', 'mr': 'पेनआकार|पेनरूंदी|रेघरूंदी|ps', 'nb': 'pennstørrelse|pennbredde|linjebredde|ps', 'nl': 'pengrootte|pendikte|penbreedte|pg', 'nn': 'pennstorleik|pennbreidd|linjebreidd|ps|pensize', 'or': 'ପେନଆକାର|ପେନଓସାର|ଧାଡ଼ିଓସାର|ps', 'pt_BR': 'mudarEspessuraDoLápis|mEspLa', 'ro': 'pensize|penwidth|linewidth|ps|mărimestilou', 'ru': 'размер_пера|толщина_пера|толщина_линии|тл', 'sid': 'biiretebikka|biiretebaqo|xuruurubaqo|bb', 'sk': 'hrúbkapera|hrúbkačiary|hp|hč', 'sl': 'velikostperesa|širinaperesa|širinačrte|vp', 'sq': 'madhësiaestilolapsit|gjerësiaestilolapsit|gjerësiaevijës|ps', 'tr': 'kalemboyutu|kalemgenişliği|satırgenişliği|kb', 'uk': 'розмір_пера|ширина_пера|ширина_лінії|рп', 'vec': 'grandesapena|łarghesapena|łarghesałinea|ps', 'zh_CN': '笔大小|笔粗|线粗|pensize|penwidth|linewidth|ps', 'zh_TW': '筆大小|筆粗|線粗|pensize|penwidth|linewidth|ps'},
2286'PENSTYLE':{'en_US': 'penstyle|linestyle', 'af': 'penstyl|lynstyl', 'am': 'የብዕር ዘዴ |የ መስመር ዘዴ', 'ar': 'نمط_القلم', 'ast': 'llapizestilu|lliniaestilu|le', 'be': 'стыль_пяра|стыль_лініі', 'bs': 'stilolovke|stillinije', 'ca': 'estil.llapis|estil.línia|el', 'ca_valencia': 'estil.llapis|estil.línia|el', 'cs': 'druhpera|druhčáry', 'de': 'stiftstil|linienstil|ss|ls', 'dsb': 'stilpisaka|linijowystil|sp|ls', 'el': 'μορφήγραφίδας|μορφήγραμμής|penstyle|linestyle', 'eo': 'plumstilo|linistilo', 'es': 'estilopluma|estilolínea', 'et': 'pliiatsi_stiil|joonestiil', 'eu': 'lumaestiloa|marraestiloa', 'fi': 'kynäntyyli', 'fr': 'stylecrayon|styleligne', 'fy': 'penstyl|linestyl|linestyl', 'gl': 'estiloestilo|estiloliña', 'gug': 'tipobolígrafo|estilolínea', 'he': 'סגנוןעט|סגנוןקו', 'hr': 'stil olovke|stil linije', 'hsb': 'stilpisaka|linijowystil|sp|ls', 'hu': 'tollstílus|vonalstílus', 'is': 'pennastíll|línustíll', 'ja': 'ペンの種類|線の種類|penstyle', 'kab': 'aɣanibakeryun|aɣanibizirig', 'kk': 'қалам_стилі|сызық_стилі', 'km': 'រចនាប័ទ្ម\u200bប៉ិក|linestyle', 'kn': 'ಲೇಖನಿಶೈಲಿ|ಗೆರೆಶೈಲಿ', 'ko': '펜스타일|선스타일', 'lo': 'ແບບປາກກາ|ແບບເສັ້ນ', 'lt': 'pieštuko.stilius|linijos.stilius', 'lv': 'spalvas_stils|līnijas_stils', 'mn': 'үзэгний загвар|шугамын загвар|үз|шз', 'mr': 'पेनशैली|रेघशैली', 'nb': 'pennstil|linjestil', 'nl': 'penstijl|lijnstijl|lijnopmaak', 'nn': 'pennstil|linjestil|penstyle', 'or': 'ପେନଶୈଳୀ|linestyle', 'pa_IN': 'ਪੈੱਨ ਸਟਾਈਲ|ਲਾਈਨ ਸਟਾਈਲ', 'pt_BR': 'mudarEstiloDoLápis|mEstLa', 'ro': 'penstyle|linestyle|stilstilou', 'ru': 'стиль_пера|стиль_линии', 'sid': 'biireteakata|xuruuruakata', 'sk': 'štýlpera|štýlčiary|šp|šč', 'sl': 'slogperesa|slogčrte', 'sq': 'stiliistilolapsit|stiliivijës', 'th': 'กระบวนแบบปากกา|กระบวนแบบเส้น', 'tr': 'kalembiçemi|satırbiçemi', 'uk': 'стиль_пера|стиль_лінії', 'vec': 'stiłepena|stiłełinea', 'zh_CN': '笔型|线型|笔样式|线样式|penstyle|linestyle', 'zh_TW': '筆樣式|線樣式|penstyle|linestyle'},
2287'PENJOINT':{'en_US': 'penjoint|linejoint', 'af': 'pen-oorgang|lyn-oorgang', 'am': 'የብዕር መገናኛ |የመስመር መገናኛ', 'ast': 'llapizxunir|lliniaxunir|lx', 'bs': 'vezaolovke|vezalinije', 'ca': 'unió.llapis|unió.línia|ul', 'ca_valencia': 'unió.llapis|unió.línia|ul', 'cs': 'napojenípera|napojeníčáry', 'de': 'stiftübergang|linienübergang|sü|lü', 'dsb': 'pśechadpisaka|pśechadlinije|pp|pl', 'el': 'ένωσηγραφίδας|ένωσηγραμμής|penjoint|linejoint', 'eo': 'liniartiko|plumligo', 'es': 'conjuntopluma|conjuntolínea', 'et': 'pliiatsiühendus|jooneühendus', 'eu': 'lumajuntura|marrajuntura', 'fi': 'kynänmuoto', 'fr': 'jointurestylo|jointureligne', 'fy': 'penferbining|lineferbining', 'gl': 'estilounión|uniónliña', 'gug': 'atybolígrafo|atylínea', 'he': 'מצרףעט|מצרףקו', 'hr': 'spoj olovke|spoj linije', 'hsb': 'přechadpisaka|přechdlinije|pp|pl', 'hu': 'tollsarok|vonalsarok', 'is': 'pennaskeyting|línuskeyting', 'ja': 'ペンのつなぎ方|角のつなぎ方|penjoint', 'kab': 'asemlilastillu|asemlilizirig', 'kk': 'қаламды_біріктіру|сызықтарды_біріктіру', 'kn': 'ಲೇಖನಿಜೋಡಣೆ|ರೇಖೆಜೋಡಣೆ', 'ko': '펜조인트|선조인트', 'lo': 'ປາກກາຕໍ່ກັນ|ເສັ້ນຕໍ່ກັນ', 'lt': 'pieštuko.sujungimas|linijos.sujungimas|psj', 'lv': 'spalvas_salaidums|līnijas_salaidums', 'mn': 'үзэг шилжилт|мөр шилжилт', 'mr': 'पेनजॉइंट|लाइनजॉइंट', 'nb': 'linjekobling|penjoint', 'nl': 'penverbinding|lijnverbinding', 'nn': 'linjekopling|penjoint', 'or': 'ପେନସନ୍ଧି|linejoint', 'pa_IN': 'ਪੈੱਨ ਜੁਆਇੰਟIਲਾਈਨ ਜੁਆਇੰਟ', 'pt_BR': 'mudarCantoDaLinha|mCanLi', 'ro': 'penjoint|linejoint|colțstilou', 'ru': 'соединить_перо|соединить_линии', 'sid': 'biiretexaado|xuruuruxaado', 'sk': 'napojeniepera|napojeniečiary|np|nč', 'sl': 'stikperesa|stikčrt', 'sq': 'bashkimiistilolapsit|bashkimiivijës', 'tr': 'kalembirleşimi|satırbirleşimi', 'uk': 'сполучити_перо|сполучити_лінії', 'vec': 'zontapena|zontałinea', 'zh_CN': '笔接点|线接点|线接|penjoint|linejoint', 'zh_TW': '筆接點|線接點|線接|penjoint|linejoint'},
2288'PENCAP':{'en_US': 'pencap|linecap', 'af': 'pen-einde|lyn-einde', 'am': 'የብዕር መገናኛ |የመስመር መገናኛ', 'ast': 'finllapiz|finllinia', 'br': 'pennkreion|pennlinenn', 'ca': 'tap.llapis|final.línia|extrem.línia', 'ca_valencia': 'tap.llapis|final.línia|extrem.línia', 'cs': 'zakončenípera|zakončeníčáry', 'de': 'stiftende|linienende|se|le', 'dsb': 'kóńcpisaka|kóńclinije|kp|kl', 'el': 'άκρογραφίδας|άκρογραμμής|pencap|linecap', 'eo': 'plumĉapo|liniĉapo', 'es': 'fin.línea|punta.línea|fl', 'et': 'jooneots', 'eu': 'lumaestalkia|marraestalkia', 'fi': 'viivanpää', 'fr': 'coiffecrayon|coiffeligne', 'fy': 'penein|lineein', 'gl': 'rematelápis|remateliña', 'gug': 'tapabolígrafo|kyta.línea', 'he': 'סיומתעט|סיומתקו', 'hr': 'vrh olovke|vrh linije', 'hsb': 'kónčkpisaka|kónčklinije|kp|kl', 'hu': 'tollhegy|vonalvég', 'is': 'pennaendi|línuendi', 'ja': 'ペンのはじ|線のはじ|linecap', 'kab': 'tacacitastillu|tacacitizirig', 'kk': 'сызық_басы|сызық_аяғы', 'kn': 'ಲೇಖನಿಕ್ಯಾಪ್|ಸಾಲಿನಕ್ಯಾಪ್', 'ko': '펜끝|선끝', 'lt': 'pieštuko.pabaiga|linijos.pabaiga|pp', 'lv': 'spalvas_gals|līnijas_gals', 'mn': 'үзэгний төгсгөл|шугамын төгсгөл', 'nb': 'linjeende|pencap|linecap', 'nl': 'peneinde|lijneinde', 'nn': 'linjeende|pencap|linecap', 'oc': 'coifagredon|coifalinha', 'pa_IN': 'ਪੈੱਨ ਕੈਪIਲਾਈਨ ਕੈਪ', 'pt_BR': 'mudarPontaDoLápis|mPonLa|mPonLi', 'ro': 'pencap|linecap|capătstilou', 'ru': 'угол_пера|угол_линии', 'sk': 'zakončeniepera|zakončeniečiary|zp|zč', 'sl': 'konicaperesa|konicačrte', 'tr': 'kalemyazısı|satıryazısı', 'ug': 'قەلەم ئىزى|سىزىق ئىزى|pencap|linecap', 'uk': 'шапка пера|шапка лінії', 'vec': 'pontapena|pontałinea', 'zh_CN': '笔帽|线帽|笔端帽|线端帽|pencap|linecap', 'zh_TW': '筆端帽|線端帽|線端|pencap|linecap'},
2289'NONE':{'en_US': 'none', 'af': 'geen', 'am': 'ምንም', 'ar': 'بلا', 'as': 'কোনো নহয়', 'ast': 'dengún', 'be': 'няма', 'bn_IN': 'কোনটি না', 'bn': 'কোনটি না', 'bo': 'མེད་པ།', 'br': 'tra ebet', 'brx': 'रावबो नङा', 'bs': 'ništa', 'ca': 'cap', 'ca_valencia': 'cap', 'ckb': 'هیچ', 'cy': 'dim', 'cs': 'žádné', 'de': 'kein', 'dgo': 'कोई नेईं', 'dsb': 'žeden', 'dz': 'ཅི་མེད།', 'el': 'κανένα', 'eo': 'neniu', 'es': 'ninguno', 'et': 'puudub', 'eu': 'bat ere ez', 'fa': 'هیچ\u200cکدام', 'fi': 'eimitään', 'fr': 'aucun(e)', 'fy': 'gjint', 'gd': 'chan eil gin', 'gl': 'ningún', 'gug': 'mavave', 'gu': 'કંઇ નહિં', 'he': 'ללא', 'hi': 'कोई नहीं', 'hr': 'ništa', 'hsb': 'žadyn', 'hu': 'nincs', 'id': 'tak ada', 'is': 'ekkert', 'ja': 'つながない|none', 'kab': 'ula yiwen', 'ka': 'ცარიელი', 'kk': 'жоқ', 'km': 'គ្មាន', 'kmr_Latn': 'ne yek jî', 'kn': 'ಏನೂ ಇಲ್ಲ', 'kok': 'कोण ना', 'ko': '없음', 'ks': 'كہین نئ', 'lb': 'keen', 'lo': 'ບໍ່ມີ', 'lt': 'nieko', 'lv': 'nav', 'mai': 'किछु नहि', 'mk': 'Нема', 'ml': 'ഒന്നുമില്ല', 'mni': 'অমত্তা নত্তবা', 'mn': 'байхгүй', 'mr': 'काहीही नाही', 'my': 'မရှိပါ', 'nb': 'ingen', 'ne': 'कुनै पनि होइन', 'nl': 'geen', 'nn': 'ingen|none', 'nso': 'ga go na selo', 'oc': 'pas cap', 'om': 'homaa', 'or': 'କିଛି ନାହିଁ', 'pa_IN': 'ਕੋਈ ਨਹੀਂ', 'pt_BR': 'nenhum', 'ro': 'none|nimic', 'ru': 'нет', 'rw': 'ntacyo', 'sa_IN': 'न कोऽपि', 'sat': 'ओका हों बाङजाहानाक् बाङ', 'sd': 'ڪجهہ بہ نہ', 'sid': 'dino', 'si': 'කිසිවක් නැත', 'sk': 'žiadne', 'sl': 'brez', 'sq': 'asnjë', 'st': 'ha di teng', 'sw_TZ': 'bila', 'ta': 'ஏதுமில்லை', 'te': 'ఏదీ కాదు', 'tg': 'ягон', 'th': 'ไม่มี', 'tn': 'sepe', 'tr': 'hiçbiri', 'ts': 'ku hava', 'ug': 'يوق', 'uk': 'немає', 'uz': 'yoʻq', 've': 'a huna', 'vi': 'không có', 'xh': 'akukho', 'zh_CN': '无|none', 'zh_TW': '無|none', 'zu': 'lutho'},
2290'BEVEL':{'en_US': 'bevel', 'af': 'afskuinsing', 'am': 'ስላሽ', 'ar': 'مشطوف', 'ast': 'moldura', 'be': 'скос', 'bn_IN': 'স্তর', 'br': 'beskell', 'bs': 'kosina', 'ca': 'bisell', 'ca_valencia': 'bisell', 'cy': 'befel', 'cs': 'šikmé', 'de': 'schräg', 'dsb': 'nakósny', 'el': 'λοξό|bevel', 'eo': 'bivela', 'es': 'bisel', 'et': 'faasitud', 'eu': 'alakatua', 'fi': 'viisto', 'fr': 'biseau', 'fy': 'skean dwaan', 'gd': 'beibheal', 'gl': 'bisel', 'gug': 'bisel', 'gu': 'સ્તર', 'he': 'קטום', 'hi': 'स्तर', 'hr': 'stožac', 'hsb': 'nakósny', 'hu': 'tompa', 'is': 'flái', 'ja': '角を落とす|bevel', 'ka': 'დონე', 'kk': 'көлбеу', 'km': 'ជ្រុង\u200bទេរ', 'kn': 'ಸ್ತರ', 'ko': '수준', 'lo': 'ອ່ຽງ', 'lt': 'nuožulnus', 'lv': 'nošķelts', 'ml': 'തലം', 'mn': 'налуу', 'mr': 'बेवेल', 'my': 'အဆင့်', 'nb': 'skråkant', 'ne': 'स्तर', 'nl': 'afschuinen', 'nn': 'skråkant|bevel', 'oc': 'bisèl', 'or': 'ସ୍ତର', 'pa_IN': 'ਲੈਵਲ', 'pt_BR': 'cortado', 'ro': 'bevel|teșit', 'ru': 'скос', 'sid': 'beevele', 'si': 'මට්ටම', 'sk': 'šikmé', 'sl': 'vbočeno', 'sq': 'nivel', 'ta': 'பெவல்', 'te': 'స్థాయి', 'tr': 'eğim', 'ug': 'يانتۇ يۈز', 'uk': 'скіс', 'vec': 'scanton', 'vi': 'Cấp', 'zh_CN': '平角|bevel', 'zh_TW': '平角|bevel'},
2291'MITER':{'en_US': 'miter', 'af': 'hoeksny', 'am': 'መጋጠሚያ', 'ar': 'قلنسوة', 'ast': 'inglete', 'br': 'garan', 'bs': 'kosispoj', 'ca': 'esbiaixa|biaix', 'ca_valencia': 'esbiaixa|biaix', 'cy': 'meitr', 'cs': 'ostré', 'de': 'gehrung', 'dsb': 'prěcnyrěz', 'el': 'μύτη|miter', 'eo': 'oblikva', 'es': 'mitra|inglete|bies', 'et': 'terav', 'eu': 'ebakia', 'fi': 'jiiri', 'fr': 'mitre', 'fy': 'snijend', 'gd': 'bairrin', 'gl': 'bispel', 'gug': 'mitra|inglete|bies', 'gu': 'મિટર', 'he': 'משלים', 'hi': 'माइटर', 'hr': 'koljeno', 'hsb': 'nakosa', 'hu': 'hegyes', 'id': 'siku', 'is': 'hornskeyting', 'ja': '角をとがらせる|miter', 'kab': 'tacacit n upapas', 'kk': 'көлбеу45', 'km': 'ផ្គុំ', 'kn': 'ಮಿಟರ್', 'ko': '미터', 'lt': 'kampinis', 'lv': 'spics', 'mn': 'татуурга', 'mr': 'मीटर', 'nb': 'skarp', 'nl': 'snijdend', 'nn': 'skarp|miter', 'oc': 'mitra', 'or': 'ମିଟର', 'pa_IN': 'ਕਣ', 'pt_BR': 'pontudo', 'ro': 'miter|ascuțit', 'ru': 'скос45', 'sid': 'metire', 'sk': 'ostré', 'sl': 'izbočeno', 'ta': 'மைட்டர்', 'tr': 'köşe', 'ug': 'چېتىق', 'uk': 'скіс45', 'vec': 'zontacantoni', 'zh_CN': '尖角|miter', 'zh_TW': '尖角|miter'},
2292'ROUNDED':{'en_US': 'round', 'af': 'ronding', 'am': 'ክብ', 'ar': 'دائري', 'as': 'গোলাকাৰ', 'ast': 'redondu', 'be': 'круглы', 'bn_IN': 'রাউন্ড', 'br': 'ront', 'bs': 'okruglo', 'ca': 'arrodoneix|arrod', 'ca_valencia': 'arredoneix|arred', 'ckb': 'خولاوە', 'cy': 'crwn', 'cs': 'oblé', 'de': 'rund', 'dsb': 'kulowaty', 'el': 'στρογγυλό|round', 'eo': 'ronda', 'es': 'redondear', 'et': 'ümar', 'eu': 'biribildua', 'fi': 'pyöreä', 'fr': 'arrondi', 'fy': 'rûn', 'gd': 'cruinn', 'gl': 'arredondar', 'gug': "emoapu'a", 'gu': 'રાઉન્ડ', 'he': 'עגול', 'hi': 'गोल', 'hr': 'okruglo', 'hsb': 'kulojty', 'hu': 'kerek', 'id': 'bulatan ujung', 'is': 'rúnnað', 'ja': '角を丸くする|round', 'kab': 'yattwaẓ', 'ka': 'მრგვალი', 'kk': 'домалақтау', 'km': 'មូល', 'kn': 'ದುಂಡಾದ', 'ko': '반올림', 'lo': 'ຮອບ', 'lt': 'apvalus', 'lv': 'apaļš', 'ml': 'ഉരുണ്ട', 'mn': 'дугуй', 'mr': 'गोलाकार', 'my': 'ပတ်လည်', 'nb': 'avrunde', 'ne': 'गोलाकार', 'nl': 'rondaf', 'nn': 'avrunda|round', 'oc': 'arredondit', 'or': 'ଗୋଲାକାର', 'pa_IN': 'ਗੋਲ', 'pt_BR': 'arredondado', 'ro': 'round|rotund', 'ru': 'скруглить', 'sid': 'doyssi', 'si': 'වටකුරු', 'sk': 'zaoblené', 'sl': 'zaobljeno', 'sq': 'rrumbullak', 'ta': 'வட்டம்', 'te': 'రౌండ్', 'tr': 'yuvarla', 'ug': 'يۇمۇلاق', 'uk': 'закруглити', 'vec': 'stondà', 'vi': 'Làm tròn', 'zh_CN': '圆角|rounded|round', 'zh_TW': '圓角|round'},
2293'SOLID':{'en_US': 'solid', 'af': 'solied', 'am': 'ሙሉ', 'ar': 'صلب', 'as': 'কঠিন', 'ast': 'sólidu', 'be': 'суцэльны', 'bn_IN': 'নিরেট', 'br': 'unvan', 'bs': 'čvrsto', 'ca': 'sòlid', 'ca_valencia': 'sòlid', 'ckb': 'ڕەق', 'cy': 'solet', 'cs': 'plná', 'de': 'voll', 'dsb': 'połny', 'el': 'συμπαγές|solid', 'eo': 'solida', 'es': 'sólido', 'et': 'pidev', 'eu': 'solidoa', 'fi': 'yhtenäinen', 'fr': 'plein', 'fy': 'fol', 'gd': 'soladach', 'gl': 'sólido', 'gug': 'hatã', 'gu': 'ઘટ્ટ', 'he': 'אחיד', 'hi': 'ठोस', 'hr': 'puno', 'hsb': 'połny', 'hu': 'folyamatos', 'id': 'padat', 'is': 'einlitt', 'ja': '実線|ふつうの線|solid', 'kab': 'aččuran', 'ka': 'მყარი', 'kk': 'бүтін', 'km': 'តាន់', 'kn': 'ಘನ', 'ko': '단색', 'lo': 'ແນ່ນ', 'lt': 'vientisas', 'lv': 'vienlaidu', 'mn': 'дүүрэн', 'mr': 'गडद', 'nb': 'ensfarget', 'ne': 'ठोस', 'nl': 'vol', 'nn': 'einsfarga|solid', 'oc': 'plen', 'or': 'କଠିନ', 'pa_IN': 'ਗੂੜ੍ਹਾ', 'pt_BR': 'sólido', 'ro': 'solid|continuu', 'ru': 'сплошная', 'sa_IN': 'ठोस', 'sat': 'जिनिस', 'sd': 'ٺوس', 'sid': 'kaajjado', 'sk': 'vyplnené', 'sl': 'polno', 'sq': 'e ngurtë', 'ta': 'திடம்', 'te': 'గట్టి', 'th': 'ทึบ', 'tr': 'düz', 'ug': 'ئۇيۇل', 'uk': 'суцільна', 'vec': 'sòłido', 'vi': 'Đặc', 'zh_CN': '实线|solid', 'zh_TW': '實線|solid'},
2294'DASH':{'en_US': 'dashed', 'af': 'gestreep', 'am': 'ዳሽ', 'ar': 'متقطع', 'as': 'ডেশ্বযুক্ত', 'ast': 'discontinuu', 'be': 'рыскі', 'bn_IN': 'ড্যাশযুক্ত', 'br': 'gourzhelloù', 'bs': 'isprekidano', 'ca': 'traçat', 'ca_valencia': 'traçat', 'ckb': 'هێڵی پچڕ پچر', 'cy': 'dashedig', 'cs': 'čárkovaná', 'de': 'gestrichelt', 'dsb': 'smužkowany', 'el': 'με παύλες|dashed', 'eo': 'streketa', 'es': 'discontinua', 'et': 'kriipsudega', 'eu': 'marratua', 'fi': 'katkonainen', 'fr': 'tiret', 'fy': 'strepe', 'gd': 'strìochagach', 'gl': 'raiado', 'gug': 'discontinua', 'gu': 'તૂટક', 'he': 'מיקוף', 'hi': 'डैश किया हुआ', 'hr': 'iscrtkano', 'hsb': 'smužkowany', 'hu': 'szaggatott', 'id': 'garis putus', 'is': 'strikað', 'ja': '破線|dashed', 'kab': 'tizdit', 'ka': 'წყვეტილი', 'kk': 'штрихті', 'km': '\u200bដាច់ៗ', 'kn': 'ಅಡ್ಡಗೆರೆಗಳುಳ್ಳ', 'ko': '파선', 'lo': 'ເຄື່ອງໝາຍເສັ້ນເປັນວັກ', 'lt': 'brūkšneliai', 'lv': 'svītrots', 'ml': 'ഡാഷ്ഡ്', 'mn': 'зураасласан', 'mr': 'डॅश्ड', 'my': 'မျဉ်းရှည်', 'nb': 'stiplet', 'ne': 'ड्यासभएको', 'nl': 'gestreept', 'nn': 'stipla|streka|dashed', 'oc': 'jonhent', 'or': 'ଡାସ', 'pa_IN': 'ਧਾਰੀਦਾਰ', 'pt_BR': 'tracejado', 'ro': 'dashed|culiniuțe', 'ru': 'штриховая', 'sid': 'daashshaamo', 'si': 'ඉරි යෙදූ', 'sk': 'Čiarky', 'sl': 'črtkano', 'sq': 'e ndërprerë', 'ta': 'டேஷ்', 'te': 'గీతగీయబడెను', 'th': 'เส้นประ', 'tr': 'kesik çizgi', 'ug': 'سىزىقچە', 'uk': 'штрихова', 'vec': 'tratejà', 'vi': 'Gạch gạch', 'zh_CN': '虚线|dashed', 'zh_TW': '虛線|dashed'},
2295'DOTTED':{'en_US': 'dotted', 'af': 'gestippel', 'am': 'ነጠብጣብ', 'ar': 'منقط', 'as': 'ডটেড', 'ast': 'puntiáu', 'be': 'пункцір', 'bn_IN': 'ডটেড', 'br': 'pikennaoueg', 'bs': 'tačkasto', 'ca': 'puntejat', 'ca_valencia': 'puntejat', 'ckb': 'خاڵکراو', 'cy': 'dotiog', 'cs': 'tečkovaná', 'de': 'gepunktet', 'dgo': 'बिंदीदार', 'dsb': 'dypkaty', 'el': 'διάστικτο|dotted', 'eo': 'punkta', 'es': 'punteado', 'et': 'punktiir', 'eu': 'puntukatua', 'fi': 'pisteistä', 'fr': 'pointillé', 'fy': 'stippele', 'gd': 'dotagach', 'gl': 'punteado', 'gug': "kyta'i kuéra", 'gu': 'ટપકાંવાળુ', 'he': 'ניקוד', 'hi': 'बिंदुयुक्त', 'hr': 'istočkano', 'hsb': 'dypkowany', 'hu': 'pontozott', 'id': 'garis noktah', 'is': 'punktalína', 'ja': '点線|dotted', 'kab': 's tneqqiḍin', 'ka': 'წერტილოვანი', 'kk': 'пунктирлі', 'km': 'ចុចៗ', 'kn': 'ಚುಕ್ಕಿಯುಕ್ತ', 'kok': "डॉटडTiboyil'lem", 'ko': '점선', 'lo': 'ເສັ້ນຈຸດເປັນວັກ', 'lt': 'taškeliai', 'lv': 'punktēts', 'ml': 'ഡോട്ടുള്ള', 'mn': 'цэгтэй', 'mr': 'डॉटेड', 'my': 'အစက်', 'nb': 'prikket', 'nl': 'gestippeld', 'nn': 'prikka|dotted', 'oc': 'puntejat', 'or': 'ବିନ୍ଦୁମୟ', 'pa_IN': 'ਬਿੰਦੂ', 'pt_BR': 'pontilhado', 'ro': 'dotted|punctat', 'ru': 'пунктирная', 'sa_IN': 'डाटिड', 'sat': 'टुडा़क् आकान', 'sd': 'نقطن وارو', 'sid': 'bixxillisama', 'si': 'තිත් වැටුනු', 'sk': 'Bodkované', 'sl': 'pikasto', 'sq': 'me pika', 'ta': 'புள்ளியிட்ட', 'te': 'చుక్కలు', 'th': 'จุดประ', 'tr': 'noktalı', 'ug': 'چېكىت سىزىق', 'uk': 'пунктирна', 'vec': 'pontinà', 'vi': 'Chấm chấm', 'zh_CN': '点线|dotted', 'zh_TW': '點線|dotted'},
2296'CLOSE':{'en_US': 'close', 'af': 'sluit', 'am': 'መዝጊያ', 'ar': 'أغلق', 'as': 'বন্ধ কৰক', 'ast': 'zarrar', 'be': 'закрыць', 'bn_IN': 'বন্ধ', 'br': 'serriñ', 'bs': 'blizu', 'ca': 'tanca', 'ca_valencia': 'tanca', 'ckb': 'داخستن', 'cy': 'cau', 'cs': 'uzavři', 'de': 'schliessen|schließen', 'dsb': 'zacyniś', 'el': 'κλείσιμο|close', 'eo': 'fermu', 'es': 'cerrar', 'et': 'sulge', 'eu': 'itxi', 'fi': 'sulje', 'fr': 'fermer', 'fy': 'slute', 'gl': 'pechar', 'gug': 'mboty', 'gu': 'બંધ કરો', 'he': 'סגירה', 'hi': 'बन्द करें', 'hr': 'zatvori', 'hsb': 'začinić', 'hu': 'zár', 'id': 'tutup', 'is': 'loka', 'ja': '折れ線を閉じる|close', 'kab': 'mdel', 'ka': 'დახურვა', 'kk': 'жабу', 'km': 'បិទ', 'kn': 'ಮುಚ್ಚು', 'ko': '닫기', 'lo': 'ປິດ', 'lt': 'sujunk', 'lv': 'aizvērt', 'ml': 'അടയ്ക്കുക', 'mn': 'хаах', 'mr': 'बंद करा', 'my': 'ပိတ်ပါ', 'nb': 'lukk', 'ne': 'बन्द गर्नुहोस्', 'nl': 'sluiten', 'nn': 'lukk|close', 'oc': 'tampar', 'or': 'ବନ୍ଦ କରନ୍ତୁ', 'pa_IN': 'ਬੰਦ ਕਰੋ', 'pt_BR': 'fechar|feche', 'ro': 'close|închide', 'ru': 'закрыть', 'sid': 'cufi', 'si': 'වසන්න', 'sk': 'Zatvoriť', 'sl': 'zaključi', 'sq': 'mbylle', 'ta': 'மூடு', 'te': 'మూయు', 'th': 'ปิด', 'tr': 'kapat', 'ug': 'ياپ', 'uk': 'закрити', 'vec': 'sarà', 'vi': 'Đóng', 'zh_CN': '关闭|close', 'zh_TW': '關閉|close'},
2297'FILL':{'en_US': 'fill', 'af': 'vul in', 'am': 'መሙያ', 'ar': 'املأ', 'as': 'পূৰ্ণ কৰক', 'ast': 'rellenar', 'be': 'запаўненне', 'bn_IN': 'পূরণ করুন', 'br': 'leuniañ', 'bs': 'popuni', 'ca': 'omple|emplena', 'ca_valencia': 'omple|ompli', 'ckb': 'پڕی', 'cy': 'llanw', 'cs': 'vyplň', 'de': 'füllen', 'dgo': 'भराई', 'dsb': 'połniś', 'el': 'γέμισμα|fill', 'eo': 'plenigu', 'es': 'relleno|rellenar', 'et': 'täida', 'eu': 'bete', 'fi': 'täytä', 'fr': 'remplir', 'fy': 'folje', 'gl': 'encher', 'gug': 'myenyhẽ', 'gu': 'ભરો', 'he': 'מילוי', 'hi': 'भरें', 'hr': 'ispuni', 'hsb': 'pjelnić', 'hu': 'tölt', 'id': 'isian', 'is': 'fylling', 'ja': '塗りつぶし|fill', 'kab': 'ččar', 'ka': 'შევსება', 'kk': 'толтыру', 'km': 'បំពេញ', 'kn': 'ತುಂಬಿಸು', 'ko': '채우기', 'lo': 'ຕື່ມໃສ່', 'lt': 'spalvink', 'lv': 'aizpildīt', 'ml': 'നിറയ്ക്കുക', 'mn': 'дүүргэх', 'mr': 'भरा', 'my': 'ဖြည့်ပါ', 'nb': 'fyll', 'ne': 'भर्नुहोस्', 'nl': 'vullen', 'nn': 'fyll|fill', 'oc': 'emplenar', 'or': 'ପୁରଣ କରନ୍ତୁ', 'pa_IN': 'ਭਰੋ', 'pt_BR': 'pintar|pinte|preencher', 'ro': 'fill|umplere', 'ru': 'заливка', 'sid': 'wonshi', 'sk': 'výplň', 'sl': 'zapolni', 'sq': 'mbush', 'ta': 'நிரப்பு', 'te': 'నింపు', 'th': 'เติม', 'tr': 'doldur', 'ug': 'تولدۇر', 'uk': 'заповнення', 'vec': 'pien', 'zh_CN': '填充|fill', 'zh_TW': '填入|fill'},
2298'FILLCOLOR':{'en_US': 'fillcolor|fillcolour|fc', 'af': 'vulkleur|vk', 'am': 'ቀለም መሙያ|ቀለም መሙያ|ቀ.መ', 'ar': 'ملأ_لون', 'ast': 'colorrellenu|cr', 'bs': 'popuniboju|popuniboju|fc', 'ca': 'color.emplenament|ce', 'ca_valencia': 'color.emplenament|ce', 'cs': 'barvavýplně|bv', 'de': 'füllfarbe|ff', 'dsb': 'połnjecabarwa|pb', 'el': 'χρώμαγεμίσματος|χε|fillcolor|fillcolour|fc', 'eo': 'pleniga_koloro|plenkoloro|plk', 'es': 'color.relleno|relleno.color|cr|fc', 'et': 'täitevärv|tv', 'eu': 'betetzekolorea|bk', 'fi': 'täyttöväri|tv', 'fr': 'couleurremplissage|cremplissage|cr', 'fy': 'opfolkleur|ok', 'gl': 'cambiarcor|cambiodecor|cc', 'gug': "sa'y.henyhe|ch", 'he': 'צבעמילוי|צמ', 'hr': 'boja punjenja|boja punjenja|bp', 'hsb': 'pjelnjacabarba|pb', 'hu': 'töltőszín|töltőszín!|tlsz!?', 'is': 'fyllilitur|fl', 'ja': '塗りつぶしの色|fillcolor|fc', 'kab': 'initaččart|ččarini|či', 'kk': 'толтыру_түсі|тт', 'km': 'ពណ៌\u200bបំពេញ|fillcolour|fc', 'kn': 'ಬಣ್ಣತುಂಬಿಸು|ಬಣ್ಣತುಂಬಿಸು|fc', 'ko': '색상채우기|색상채우기|fc', 'lo': 'fillcolor|ຕື່ມສີ|fc', 'lt': 'spalvinimo.spalva|ssp', 'lv': 'pildījuma_krāsa|pk', 'mn': 'өнгөдүүргэх|өнгөдүүргэх|fc', 'mr': 'फिलकलर|फिलकलर|fc', 'nb': 'fyllfarge|ff', 'nl': 'opvulkleur|ok', 'nn': 'fyllfarge|ff|fillcolor', 'oc': 'coloremplenatge|coloremplenatge|cr', 'or': 'ରଙ୍ଗପୁରଣ|ରଙ୍ଗପୁରଣ|fc', 'pt_BR': 'mudarCorDaPintura|mCorPi|mudecp', 'ro': 'fillcolor|fillcolour|fc|culoareumplere', 'ru': 'цвет_заливки|цз', 'sid': 'kuulawonshi|kuulawonshi|kw', 'sk': 'farbavýplne|fv', 'sl': 'barvapolnila|polnilnabarva|bp', 'sq': 'ngjyraeplotësimit|ngjyraeplotësimit|fc', 'tr': 'renkdoldur|renkdoldur|rd', 'uk': 'колір_заповнення|кз', 'vec': 'cołorpien|cołorpien|fc', 'zh_CN': '填充颜色|填充色|填色|fillcolor|fillcolour|fc', 'zh_TW': '填入顏色|填入色彩|填色|fillcolor|fillcolour|fc'},
2299'FILLTRANSPARENCY':{'en_US': 'filltransparency', 'af': 'vuldeursigtigheid', 'am': 'ግልጽነት መሙያ', 'ar': 'ملأ_شفافية', 'ast': 'tresparencia.rellenu', 'br': 'boullderleuniañ', 'ca': 'transparència.emplenament', 'ca_valencia': 'transparència.emplenament', 'cs': 'průhlednostvýplně|průhlvýplně', 'de': 'fülltransparenz|ft', 'dsb': 'połnjecatransparenca', 'el': 'διαφάνειαγεμίσματος', 'eo': 'plenigtravideblo', 'es': 'relleno.transparencia|transparencia.relleno', 'et': 'täite_läbipaistvus|tlp', 'eu': 'betetzegardentasuna', 'fi': 'täyttöläpinäkyvyys', 'fr': 'transparenceremplir', 'fy': 'follingtrochsichtigens', 'gl': 'transparenciarecheo', 'gug': 'myenyhẽ.tesakã', 'he': 'שקיפות_המילוי', 'hr': 'prozirnostispune', 'hsb': 'pjelnjacatransparenca', 'hu': 'töltőátlátszóság', 'is': 'fylligegnsæi', 'ja': '塗りつぶしの透明度|filltransparency', 'kab': 'tafrawantččar', 'kk': 'толтыру_мөлдірлілігі', 'km': 'បំពេញ\u200bភាព\u200bថ្លា', 'kn': 'ಪಾರದರ್ಶಕತೆಭರ್ತಿಮಾಡು', 'ko': '투명채우기', 'lo': 'ຕື່ມຂໍ້ມູນໃສ່ຄວາມໂປ່ງໃສ', 'lt': 'spalvinimo.skaidrumas|ssk', 'lv': 'pildījuma_caurspīdīgums', 'mn': 'өнгөгүйдүүргэлт', 'nb': 'fyllgjennomsiktighet', 'nl': 'vullingstransparantie', 'nn': 'fyllgjennomsikt', 'oc': 'transparénciaemplenar', 'or': 'ପୂରଣସ୍ୱଚ୍ଛତା', 'pa_IN': 'ਪਾਰਦਰਸ਼ਤਾ ਭਰੋ', 'pt_BR': 'mudarTransparênciaDaPintura|mTraPi', 'ru': 'прозр_заливки|пз', 'sk': 'priehľadnosťvýplne|pv', 'sl': 'prosojnostpolnila', 'sq': 'transparencaembushjes', 'tr': 'şeffaflıkladoldur', 'ug': 'تولدۇرۇش سۈزۈكلۈكى', 'uk': 'прозорість_заповнення', 'vec': 'trasparensapien', 'zh_CN': '填充透明|填透明|filltransparency', 'zh_TW': '填入透明|填透明|filltransparency'},
2300'PENTRANSPARENCY':{'en_US': 'pentransparency|linetransparency', 'af': 'pen-deursigtigheid|lyn-deursigtigheid', 'ar': 'شفافية_القلم', 'ast': 'tresparenciallápiz|tresparenciallinia', 'br': 'boullderkreion|boullderlinenn', 'ca': 'llapis.transparència|línia.transparència', 'ca_valencia': 'llapis.transparència|línia.transparència', 'cs': 'průhlednostpera|průhlednostčáry|průhlpera|průhlčáry', 'de': 'stifttransparenz|linientransparenz|st|lt', 'dsb': 'transparencapisaka|transparencalinije|tp|tl', 'el': 'διαφάνειαγραφίδας|διαφάνειαγραμμής', 'eo': 'plumtravideblo|linitravideblo', 'es': 'pluma.transparencia|línea.transparencia|transparencia.pluma|transparencia.línea', 'et': 'pliiatsi_läbipaistvus|joone_läbipaistvus', 'eu': 'lumagardentasuna|marragardentasuna', 'fi': 'kynänläpinäkyvyys', 'fr': 'transparencecrayon|tranparenceligne', 'fy': 'pentrochsichtigens|linetrochsichtigens', 'gl': 'transparencialapis|transparencialiña', 'gug': 'bolígrafo.hesakã|línea.hesakã', 'he': 'שקיפות_עט|שקיפות_קו', 'hr': 'prozirnostolovke|prozirnostlinije', 'hsb': 'transparencapisaka|transparencalinije|tp|tl', 'hu': 'tollátlátszóság', 'is': 'pennagegnsæi|línugegnsæi', 'ja': 'ペンの透明度|pentransparency|linetransparency', 'kab': 'tafrawantakeryun|tafrawantizirig', 'kk': 'қалам_мөлдірлілігі|сызық_мөлдірлілігі', 'km': 'ភាព\u200bថ្លា|ភាពថ្លាបន្ទាត់', 'kn': 'ಲೇಖನಿಪಾರದರ್ಶಕತೆ|ಸಾಲಿನಪಾರದರ್ಶಕತೆ', 'ko': '투명펜', 'lo': 'ຄວາມໂປ່ງໃສຂອງປາກກາ|ຄວາມປອດໃສຂອງເສັ້ນ', 'lt': 'pieštuko.skaidrumas|linijos.skaidrumas|psk', 'lv': 'spalvas_caurspīdīgums|līnijas_caurspīdīgums', 'mn': 'өнгөгүйүзэг|өнгөгүйшугам', 'nb': 'penngjennomsiktighet|linjegjennomsiktighet', 'nl': 'pentranparantie|lijntransparantie', 'nn': 'penngjennomsikt|linjegjennomsikt', 'oc': 'transparénciagredon|tranparéncialinha', 'or': 'କଲମସ୍ୱଚ୍ଛତା|ଧାଡ଼ିସ୍ୱଚ୍ଛତା', 'pt_BR': 'mudarTransparênciaDoLápis|mTraLa|mTraLi', 'ru': 'прозр_пера|прозр_линии|пп', 'sk': 'priehľadnosťpera|priehľadnosťčiary|pp|pč', 'sl': 'prosojnostperesa|prosojnostčrte', 'sq': 'transparencaestilolapsit|transparencaevijës', 'tr': 'kalemşeffaflığı|çizgişeffaflığı', 'ug': 'قەلەم سۈزۈك|سىزىق سۈزۈك|pentransparency|linetransparency', 'uk': 'прозорість_пера|прозорість_лінії', 'vec': 'trasparensapena|trasparensałinea', 'zh_CN': '笔透明|线透明|pentransparency|linetransparency', 'zh_TW': '筆透明|線透明|pentransparency|linetransparency'},
2301'FILLSTYLE':{'en_US': 'fillstyle', 'af': 'vulstyl', 'am': 'መሙያ ዘዴ', 'ar': 'نمط_الملأ', 'ast': 'estiluderrellenu', 'be': 'стыль_заліўкі', 'bn_IN': 'ভরাট শৈলী', 'br': 'stil leuniañ', 'bs': 'stil popunjavanja', 'ca': 'estil.emplenament|ee', 'ca_valencia': 'estil.emplenament|ee', 'cs': 'druhvýplně', 'de': 'füllstil|fs', 'dsb': 'połnjeńskistil', 'el': 'μορφήγεμίσματος|fillstyle', 'eo': 'pleniga_stilo', 'es': 'estilorelleno', 'et': 'täitestiil', 'eu': 'betetzeestiloa', 'fi': 'täyttötyyli', 'fr': 'styleremplissage', 'fy': 'folling', 'gd': 'stoidhle an lìonaidh', 'gl': 'estilo de recheo', 'gug': 'estilohenyhe', 'gu': 'ભરવાની શૈલી', 'he': 'סגנון מילוי', 'hi': 'भरने की शैली', 'hr': 'stil ispune', 'hsb': 'pjelnjenskistil|ps', 'hu': 'töltőstílus', 'id': 'fontcolor|textcolor|textcolour', 'is': 'stíll fyllingar', 'ja': '塗りつぶしの模様|fillstyle', 'kab': 'aɣanibtaččart', 'ka': 'ჩასხმის სტილი', 'kk': 'толтыру_түрі', 'km': 'រចនាប័ទ្ម\u200b\u200bបំពេញ', 'kn': 'ತುಂಬಿಸುವ ಶೈಲಿ', 'ko': '채우기 스타일', 'lo': 'ແບບການຕື່ມສີ', 'lt': 'spalvinimo.stilius|sst', 'lv': 'pildījuma_stils', 'ml': 'നിറയ്ക്കുന്ന ശൈലി', 'mn': 'дүүргэх төрөл', 'mr': 'भरण्याची शैली', 'my': 'စတိုင်လ် ဖြည့်ပါ', 'nb': 'fyllstil', 'ne': 'शैली भर्नुहोस्', 'nl': 'vulling', 'nn': 'fyllstil|fillstyle', 'oc': "Estil d'emplenament", 'or': 'ଶୌଳୀ ପୁରଣ କର', 'pa_IN': 'ਭਰਨ ਸਟਾਈਲ', 'pt_BR': 'mudarEstiloDaPintura|mEstPi', 'ro': 'fillstyle|stilumplere', 'ru': 'стиль_заливки', 'sid': 'akatawonshi', 'si': 'පිරවුම් රටාව', 'sk': 'Výplň', 'sl': 'slogpolnila', 'sq': 'stiliimbushjes', 'te': 'నింపు శైలి', 'th': 'กระบวนแบบการเติมสี', 'tr': 'dolgu biçemi', 'ug': 'تولدۇرۇش ئۇسلۇبى', 'uk': 'стиль_заповнення', 'vec': 'stiłepien', 'vi': 'Kiểu tô đầy', 'zh_CN': '填充样式|填样式|填式|fillstyle', 'zh_TW': '填入樣式|填樣式|fillstyle'},
2302'FONTCOLOR':{'en_US': 'fontcolor|textcolor|textcolour', 'af': 'fontkleur|tekskleur', 'am': 'የ ፊደል ቀለም|የ ጽሁፍ ቀለም|የ ጽሁፍ ቀለም', 'ar': 'لون_الخط', 'ast': 'colorlletra|colortestu', 'bs': 'bojafonta|bojateksta|bojateksta', 'ca': 'color.lletra|color.text', 'ca_valencia': 'color.lletra|color.text', 'cs': 'barvapísma|barvatextu', 'de': 'schriftfarbe|textfarbe|schf|tf', 'dsb': 'pismowabarwa|tekstowabarwaa|pb|tb', 'el': 'χρώμαγραμματοσειράς|χρώμακειμένου|fontcolor|textcolor|textcolour', 'eo': 'tiparkoloro|tekstokoloro|tk', 'es': 'color.texto|color.letra', 'et': 'fondi_värv|teksti_värv', 'eu': 'letrakolorea|testukolorea', 'fi': 'fontinväri', 'fr': 'couleurpolice|couleurtexte|ctexte', 'fy': 'letterkleur|tekstkleur', 'gl': 'cordeletra|cordetexto|cordetexto', 'gug': "sa'y.moñe'ẽrã|sa'y.letra", 'he': 'צבעגופן|צבעפונט|צבעטקסט', 'hr': 'boja fonta|boja teksta|boja teksta', 'hsb': 'pismowabarba|tekstowabarba|pb|tb', 'hu': 'betűszín', 'is': 'leturlitur|textalitur|stafalitur', 'ja': '文字の色|fontcolor', 'kab': 'initasefsit|iniaḍris|inaḍris', 'kk': 'қаріп_түсі|мәтін_түсі', 'km': 'ពណ៌\u200bពុម្ពអក្សរ|textcolor|textcolour', 'kn': 'ಅಕ್ಷರಶೈಲಿಬಣ್ಣ|ಪಠ್ಯಬಣ್ಣ|ಪಠ್ಯಬಣ್ಣ', 'ko': '글꼴색상|글자색상|글자색상', 'lo': 'ສີຕົວອັກສອນ|ສີຂໍ້ຄວາມ|textcolour', 'lt': 'šrifto.spalva|teksto.spalva', 'lv': 'fonta_krāsa|teksta_krāsa', 'mn': 'үсгийнөнгө|текстийнөнгө|textcolour', 'mr': 'फाँटरंग|मजकूररंग|मजकूररंग', 'nb': 'tekstfarge', 'nl': 'letterkleur|tekstkleur', 'nn': 'tekstfarge|textcolor', 'or': 'ଅକ୍ଷରରୂପରଙ୍ଗ|ପାଠ୍ୟରଙ୍ଗ|textcolour', 'pt_BR': 'mudarCorDaLetra|mCorLe', 'ro': 'fontcolor|textcolor|textcolour|culoarefont', 'ru': 'цвет_шрифта|цвет_текста', 'sid': 'borangichukuula|borrotekuula|borrotekuulamme', 'sk': 'farbapísma|farbatextu|fp|ft', 'sl': 'barvapisave|barvačrk|barvabesedila', 'sq': 'ngjyraefontit|ngjyraetekstit|ngjyraetekstit', 'tr': 'yazıtipirengi|metinrengi|metinrengi', 'uk': 'колір_символів|колір_тексту', 'vec': 'cołorfont|cołortesto|cołortesto', 'zh_CN': '文字颜色|字体颜色|字颜色|字色|fontcolor|textcolor|textcolour', 'zh_TW': '字型顏色|文字顏色|字型色彩|文字色彩|字色|fontcolor|textcolor|textcolour'},
2303'FONTTRANSPARENCY':{'en_US': 'fonttransparency|texttransparency', 'af': 'fontdeursigtigheid|teksdeursigtigheid', 'am': 'የ ፊደል|ጽሁፍ ግልጽነት:', 'ca': 'transparència.lletra|transparència.text', 'ca_valencia': 'transparència.lletra|transparència.text', 'cs': 'průhlednostpísma|průhlpísma|průhlednosttextu|průhltextu', 'da': 'skrifttransparens|teksttransparens', 'de': 'schrifttransparenz|texttransparenz', 'dsb': 'transparencapisma|transparencateksta', 'el': 'διαφάνειαγραμματοσειράς|διαφάνειακειμένου', 'eo': 'tiparvideblo|tekstvideblo', 'es': 'transparenciafuente|transparenciatexto', 'et': 'fondi_läbipaistvus|teksti_läbipaistvus', 'eu': 'letragardentasuna|testugardentasuna', 'fr': 'transparencepolice|transparencetexte', 'fy': 'lettertypetrochsichtens|teksttrochsichtens', 'gl': 'transparenciatipoletra|transparenciatexto', 'he': 'שקיפות_גופן|שקיפות_טקסט', 'hr': 'prozirnostfonta|prozirnostteksta', 'hsb': 'transparencapisma|transparencateksta', 'hu': 'betűátlátszóság|szövegátlátszóság', 'is': 'leturgegnsæi|textagegnsæi', 'ja': 'フォントの透明度|texttransparency', 'kk': 'қаріп_мөлдірлігі|мәтін_мөлдірлігі', 'lv': 'fonta_caurspīdīgums|teksta_caurspīdīgums', 'mn': 'үзэгний тунгалаг байдал|текстийн тунгалаг байдал', 'nb': 'font transparens | tekst transparens', 'nl': 'lettertypetransparantie|teksttransparantie', 'oc': 'transparénciapolissa|transparénciatexte', 'pt_BR': 'transparẽnciafonte|transparênciatexto', 'ru': 'прозр_шрифта|прозр_текста', 'sk': 'priehľadnosťpísma|priehľadnosťtextu|pp|pt', 'sl': 'prosojnostpisave|prosojnostbesedila', 'tr': 'yazıtipişeffaflığı|metinşeffaflığı', 'uk': 'прозор_шрифта|прозор_тексту', 'vec': 'trasparensafont|trasparensatesto', 'zh_CN': '字体透明|文字透明|字透明|fonttransparency|texttransparency', 'zh_TW': '字型透明|文字透明|fonttransparency|texttransparency'},
2304'FONTHEIGHT':{'en_US': 'fontsize|textsize|textheight', 'af': 'fontgrootte|teksgrootte', 'am': 'የ ፊደል መጠን|የ ጽሁፍ መጠን|የ ጽሁፍ እርዝመት', 'ar': 'حجم_الخط', 'ast': 'tamañulletra|tamañutestu|altortestu', 'bs': 'veličinafonta|veličinateksta|visinateksta', 'ca': 'mida.lletra|mida.text', 'ca_valencia': 'mida.lletra|mida.text', 'cs': 'velikostpísma|velikosttextu', 'de': 'schriftgrösse|schriftgröße|textgrösse|textgröße|schgr|tgr', 'dsb': 'wjelikosćpisma|wjelikosćteksta|wusokosćteksta|wp|wt', 'el': 'μέγεθοςγραμματοσειράς|μέγεθοςκειμένου|ύψοςκειμένου|fontsize|textsize|textheight', 'eo': 'tiparogrando|tekstoalto|tekstogrando', 'es': 'tamaño.texto|tamaño.letra', 'et': 'fondi_suurus|teksti_suurus|teksti_kõrgus', 'eu': 'letratamaina|testutamaina|testualtuera', 'fi': 'fonttikoko', 'fr': 'taillepolice|tailletexte|largeurtexte', 'fy': 'lettergrutte|tekstgrutte|teksthichte', 'gl': 'tamañodeletra|tamañodetexto|alturadetexto', 'he': 'גודלגופן|גודלטקסט|גובהטקסט', 'hr': 'veličina fonta|veličina teksta|visina teksta', 'hsb': 'wulkosćpisma|wulkosćteksta|wysokosćteksta|wp|wt', 'hu': 'betűméret', 'is': 'leturstærð|textastærð|textahæð', 'ja': '文字の大きさ|フォントの大きさ|fontsize|fontheight', 'kab': 'teɣzitasefsit|teɣziaḍris|tehriaḍris', 'kk': 'қаріп_өлшемі|мәтін_өлшемі|мәтін_биіктігі', 'km': 'ទំហំ\u200bពុម្ពអក្សរ|textsize|textheight', 'kn': 'ಅಕ್ಷರಶೈಲಿಗಾತ್ರ|ಪಠ್ಯಗಾತ್ರ|ಪಠ್ಯಎತ್ತರ', 'ko': '글꼴크기|글자크기|글자높이', 'lo': 'fontsize|ຂະໜາດຕົວອັກສອນ|ຄວາມສູງຂອງຂໍ້ຄວາມ', 'lt': 'šrifto.dydis|teksto.dydis', 'lv': 'fonta_izmērs|teksta_izmērs|teksta_augstums', 'mn': 'фонтхэмжээ|текстхэмжээ|текстөндөр', 'mr': 'फाँटआकार|मजकूरआकार|मजकूरऊंची', 'nb': 'tekststørrelse|teksthøyde', 'nl': 'tekengrootte|tekstgrootte|teksthoogte', 'nn': 'tekststorleik|teksthøgd|textsize', 'or': 'ଅକ୍ଷରରୂପ ଆକାର|ପାଠ୍ୟଆକାର|textheight', 'pt_BR': 'mudarTamanhoDaLetra|mTamLe', 'ro': 'fontsize|textsize|textheight|mărimefont', 'ru': 'кегль|размер_текста|высота_текста', 'sid': 'borangichu bikka|borrotebikka|borrotehojja', 'sk': 'veľkosťpísma|veľkosťtextu|vp|vt', 'sl': 'velikostpisave|velikostčrk|velikostbesedila', 'sq': 'madhësiaefontit|madhësiaetekstit|lartësiaetekstit', 'tr': 'yazıtipiboyutu|metinboyutu|metinyüksekliği', 'uk': 'кегль|розмір_символів|висота_символів', 'vec': 'grandesafont|grandesatesto|altesatesto', 'zh_CN': '文字大小|字体大小|字大小|字高|fontsize|textsize|textheight', 'zh_TW': '字型大小|文字大小|字大小|字高|字級|fontsize|textsize|textheight'},
2305'FONTWEIGHT':{'en_US': 'fontweight', 'af': 'fontdikte', 'am': 'የ ፊደል ክብደት', 'ar': 'وزن_الخط', 'ast': 'pesudefonte', 'bn_IN': 'ফন্টের পুরুত্ব', 'br': 'lard', 'bs': 'težinafonta', 'ca': 'pes.lletra|pl', 'ca_valencia': 'pes.lletra|pl', 'ckb': 'پانی جۆرەپیت', 'cy': 'pwysau ffont', 'cs': 'tloušťkapísma', 'de': 'schriftgewicht|schgw', 'dsb': 'pismowawaga|pw', 'el': 'πάχοςγραμματοσειράς|fontweight', 'eo': 'tiparopezo', 'es': 'peso.letra|pl', 'et': 'fondi_paksus', 'eu': 'letralodiera', 'fi': 'fontinpaksuus', 'fr': 'graisse', 'fy': 'letter tsjokte', 'gl': 'grosor do tipo de letra', 'gu': 'ફોન્ટનો ભાર', 'he': 'משקלגופן', 'hi': 'फ़ॉन्ट भार', 'hr': 'debljina fonta', 'hsb': 'pismowawaha|pw', 'hu': 'betűvastagság', 'is': 'leturbreidd', 'ja': '文字の太さ|フォントの太さ|fontweight', 'kab': 'tuzert', 'ka': 'შრიფტის სიგანე', 'kk': 'қаріп_жуандығы', 'km': 'កម្រាស់\u200bពុម្ពអក្សរ', 'kn': 'ಅಕ್ಷರಶೈಲಿ ತೂಕ', 'ko': '글꼴 굵기', 'lo': 'ຄວາມໃຫ່ຍຂອງຕົວອັກສອນ', 'lt': 'šrifto.storis|teksto.storis', 'lv': 'fonta_treknums', 'ml': 'ഫോണ്ഡിന്റെ തൂക്കം', 'mn': 'үсгийнжин', 'mr': 'फाँटचे वजन', 'my': 'စာလုံး အလေးချိန်', 'nb': 'skrifttykkelse|fontweight', 'ne': 'फन्ट वजन', 'nl': 'letterdikte|tekstdikte', 'nn': 'skrifttjukkleik|fontweight', 'oc': 'Graissa', 'or': 'ଅକ୍ଷରରୂପ ଉଚ୍ଚତା', 'pa_IN': 'ਫੋਂਟ ਗੂੜਾਪਨ', 'pt_BR': 'mudarEspessuraDaLetra|mEspLe', 'ro': 'fontweight|grosimefont', 'ru': 'толщина_шрифта', 'sid': 'brrangichu ayirreenya', 'si': 'අකුරු බර', 'sk': 'Váha písma', 'sl': 'debelinapisave', 'sq': 'peshaefontit', 'ta': 'எழுத்துரு தடிமன்', 'te': 'అక్షరశైలి భారం', 'tr': 'yazı tipi genişliği', 'ug': 'خەت نۇسخا ئىنچىكە توملۇقى', 'uk': 'товщина_символів', 'vec': 'pezofont', 'vi': 'Độ đậm chữ', 'zh_CN': '字体粗细|字粗细|字粗|fontweight', 'zh_TW': '字型重量|字重|字粗細|字粗|fontweight'},
2306'FONTSTYLE':{'en_US': 'fontstyle', 'af': 'fontstyl', 'am': 'የ ፊደል ዘዴ', 'ar': 'طراز_الخط', 'ast': 'estiludefonte', 'be': 'стыль_шрыфту', 'bn_IN': 'হরফ-শৈলী', 'br': 'stil an nodrezh', 'bs': 'stilfonta', 'ca': 'estil.lletra|el', 'ca_valencia': 'estil.lletra|el', 'ckb': 'شێوازی جۆرەپیت', 'cs': 'stylpísma', 'de': 'schriftstil|schs', 'dsb': 'stilpisma|sp', 'el': 'μορφήγραμματοσειράς|fontstyle', 'eo': 'tiparostilo', 'es': 'estilo.letra|estilo.fuente', 'et': 'fondi_stiil', 'eu': 'letraestiloa', 'fi': 'fonttityyli', 'fr': 'stylepolice', 'fy': 'tekststyl|letterstyl', 'gl': 'estilo do tipo de letra', 'gu': 'ફોન્ટ શૈલી', 'he': 'סגנוןגופן', 'hr': 'stil fonta', 'hsb': 'stilpisma|sp', 'hu': 'betűstílus', 'is': 'leturstíll', 'ja': '文字の書き方|文字のスタイル|フォントのスタイル|fontstyle', 'kab': 'aɣanib n tsefsit', 'kk': 'қаріп_стилі', 'km': 'រចនាប័ទ្ម\u200bពុម្ពអក្សរ', 'kn': 'ಅಕ್ಷರಶೈಲಿ', 'ko': '글꼴스타일', 'lo': 'ຮູບແບບຕົວອັກສອນ', 'lt': 'šrifto.stilius|teksto.stilius', 'lv': 'fonta_stils', 'mn': 'үсгийнхэвмаяг', 'mr': 'फाँटची शैली', 'nb': 'fontstil', 'nl': 'tekststijl|letterstijl', 'nn': 'skriftstil|fontstyle', 'or': 'ଅକ୍ଷରରୂପ ଶୈଳୀ', 'pt_BR': 'mudarEstiloDaLetra|mEstLe', 'ro': 'fontstyle|stilfont', 'ru': 'стиль_шрифта', 'sid': 'borangichuakat', 'sk': 'štýlpísma|šp', 'sl': 'slogpisave', 'sq': 'stiliifontit', 'ta': 'எழுத்துரு பாணி', 'te': 'ఫాంటుశైలి', 'th': 'รูปแบบอักขระ', 'tr': 'yazı tipi biçemi', 'ug': 'خەت نۇسخا ئۇسلۇبى', 'uk': 'стиль_символів', 'vec': 'stiłefont', 'zh_CN': '字体样式|字样式|字样|fontstyle', 'zh_TW': '字型樣式|字樣式|fontstyle'},
2307'BOLD':{'en_US': 'bold', 'af': 'vetdruk', 'am': 'ማድመቂያ', 'ar': 'ثخين', 'as': 'ডাঠ', 'ast': 'gruesu', 'be': 'цёмны', 'bn_IN': 'গাঢ়', 'bn': 'গাঢ়', 'br': 'Tev', 'bs': 'masno', 'ca': 'negreta', 'ca_valencia': 'negreta', 'ckb': 'قەڵەو', 'cy': 'trwm', 'cs': 'tučné', 'de': 'fett', 'dsb': 'tucny', 'el': 'έντονα|bold', 'eo': 'grasa', 'es': 'negrita|grueso', 'et': 'paks|rasvane', 'eu': 'lodia', 'fa': 'ضخیم', 'fi': 'lihavointi', 'fr': 'gras', 'fy': 'fet', 'gd': 'trom', 'gl': 'grosa', 'gug': "hũ'i", 'gu': 'ઘટ્ટ', 'he': 'מודגש', 'hi': 'मोटा', 'hr': 'podebljano', 'hsb': 'tučny', 'hu': 'félkövér|kövér|vastag', 'id': 'tebal', 'is': 'feitletrað', 'ja': '太く|太字|bold', 'kab': 'azuran', 'ka': 'შეკვრა', 'kk': 'жуан', 'km': 'ដិត\u200b', 'kmr_Latn': 'qalind', 'kn': 'ಬೋಲ್ಡ್\u200d', 'ko': '굵은', 'lb': 'fett', 'lo': 'ຕົວໜາ', 'lt': 'pusjuodis', 'lv': 'trekns', 'ml': 'ബോള്\u200dഡ്', 'mn': 'бүдүүн', 'mr': 'ठळक', 'my': 'မဲ', 'nb': 'fet', 'ne': 'बाक्लो', 'nl': 'vet', 'nn': 'feit|bold', 'nr': 'darhileko', 'nso': 'mokoto', 'oc': 'gras', 'or': 'ଗାଢ଼', 'pa_IN': 'ਗੂੜ੍ਹੇ', 'pt_BR': 'negrito', 'ro': 'bold|îngroșat', 'ru': 'жирный', 'sid': "kee'misi", 'si': 'තදකුරු', 'sk': 'tučné', 'sl': 'krepko', 'sq': 'të trasha', 'ss': 'licinsi', 'st': 'botenya', 'ta': 'தடிமன்', 'te': 'మందం', 'th': 'ตัวหนา', 'tn': 'tiisa', 'tr': 'kalın', 'ts': 'dzwihala', 'tt': 'калын', 'ug': 'توم', 'uk': 'жирний', 'vec': 'groseto', 've': 'ndenya', 'vi': 'đậm', 'xh': 'ngqindilili', 'zh_CN': '粗体|粗|bold', 'zh_TW': '粗體|粗|bold', 'zu': 'okugqamile'},
2308'ITALIC':{'en_US': 'italic', 'af': 'skuinsdruk', 'am': 'ማዝመሚያ', 'ar': 'مائل', 'as': 'ইতালিক', 'ast': 'cursiva', 'be': 'курсіў', 'bn_IN': 'তির্যক', 'br': 'stouet', 'bs': 'koso', 'ca': 'cursiva|itàlica', 'ca_valencia': 'cursiva|itàlica', 'ckb': 'لار', 'cy': 'italig', 'cs': 'kurzíva', 'de': 'kursiv', 'dgo': 'इटैलिक', 'dsb': 'kursiwny', 'el': 'πλάγια|italic', 'eo': 'kursiva', 'es': 'cursiva|itálica|bastardilla', 'et': 'kaldkiri|kursiiv', 'eu': 'etzana', 'fi': 'kursivointi', 'fr': 'italique', 'fy': 'skeanprinte', 'gd': 'eadailteach', 'gl': 'cursiva', 'gug': 'cursiva', 'gu': 'ઇટાલિક', 'he': 'נטוי', 'hi': 'तिरछा', 'hr': 'kurziv', 'hsb': 'kursiwny', 'hu': 'kurzív|dőlt', 'is': 'skáletrað', 'ja': '斜め|斜体|italic', 'kab': 'uknan', 'ka': 'კურსივი', 'kk': 'курсив', 'km': 'ទ្រេត', 'kn': 'ಇಟಾಲಿಕ್', 'ko': '이탤릭체', 'lo': 'ຕົວງ່ຽງ', 'lt': 'kursyvas', 'lv': 'kursīvs', 'ml': 'ചരിഞ്ഞ', 'mn': 'налуу', 'mr': 'तिरके', 'my': 'စာလုံးစောင်း', 'nb': 'kursiv', 'ne': 'छड्के', 'nl': 'cursief', 'nn': 'kursiv|italic', 'oc': 'italica', 'or': 'ତେର୍ଚ୍ଛା', 'pa_IN': 'ਤਿਰਛੇ', 'pt_BR': 'itálico', 'ro': 'italic|cursiv', 'ru': 'курсив', 'sa_IN': 'इटेलिक', 'sat': 'कोचे ओलाक्', 'sd': 'اِٽيلڪ', 'sid': 'hawiitto-borro', 'si': 'ඇල අකුරු', 'sk': 'Kurzíva', 'sl': 'ležeče', 'sq': 'me të pjerrëta', 'szl': 'kursywa', 'ta': 'சாய்வு', 'te': 'వాలు', 'tr': 'italik', 'ug': 'يانتۇ', 'uk': 'курсив', 'vec': 'zbiego', 'vi': 'Nghiêng', 'zh_CN': '斜体|斜|italic', 'zh_TW': '義式斜體|斜體|斜|italic'},
2309'UPRIGHT':{'en_US': 'upright|normal', 'af': 'regop|normaal', 'am': 'ቀጥተኛ|መደበኛ', 'ar': 'معتدل|عادي', 'ast': 'normal', 'br': 'a-serzh|normal', 'bs': 'goredesno|normalno', 'ca': 'vertical|normal', 'ca_valencia': 'vertical|normal', 'cs': 'normální', 'de': 'normal', 'dsb': 'normalny', 'el': 'όρθιο|κανονικό|upright|normal', 'eo': 'rekta|vertikala|normala', 'es': 'normal', 'et': 'püstine|tavaline', 'eu': 'tente|normala', 'fi': 'pysty', 'fr': 'hautdroit|normal', 'fy': 'rjochtop|normaal', 'gl': 'vertical|normal', 'gug': 'normal', 'he': 'רגיל|עומד', 'hr': 'uspravan|normalan', 'hsb': 'normalny', 'hu': 'álló|normál', 'is': 'upprétt|venjulegt', 'ja': 'ふつう|標準|upright', 'kab': 'asawenayeffus|amagnu', 'kk': 'тура|қалыпты', 'km': 'ស្ដាំ|ធម្មតា', 'kn': 'ನೆಟ್ಟಗೆ|ಸಾಮಾನ್ಯ', 'ko': '우상단|일반', 'lo': 'ຊື່ກົງ|ປົກກະຕິ', 'lt': 'įprastinis', 'lv': 'taisns|normāls', 'mn': 'босоо|хэвийн', 'mr': 'उभे|सामान्य', 'nb': 'stående|normal', 'nl': 'rechtop|normaal', 'nn': 'normal|upright', 'or': 'ଡ଼ାହାଣପାଖ ଉପର|normal', 'pt_BR': 'vertical', 'ro': 'upright|normal|înpicioare', 'ru': 'прямой|обычный', 'sid': 'aliqiniitira|rosaminoha', 'sk': 'normálne|no', 'sl': 'pokonci|navadno', 'sq': 'lart|normal', 'tr': 'üstsağ|normal', 'uk': 'прямий|звичайний', 'vec': 'vertegałe|normałe', 'zh_CN': '正体|正|一般|upright|normal', 'zh_TW': '正體|正|一般|upright|normal'},
2310'NORMAL':{'en_US': 'normal', 'af': 'normaal', 'am': 'መደበኛ', 'ar': 'عادي', 'as': 'সাধাৰন', 'be': 'звычайны', 'bn_IN': 'সাধারণ', 'bn': 'সাধারণ', 'br': 'Reizh', 'bs': 'obicno', 'ckb': 'ئاسایی', 'cs': 'normální', 'dgo': 'आम', 'dsb': 'normalny', 'el': 'κανονικό|normal', 'eo': 'normala', 'et': 'keskmine', 'eu': 'normala', 'fa': 'معمولی', 'fi': 'tavallinen', 'fy': 'normaal', 'gd': 'àbhaisteach', 'gu': 'સામાન્ય', 'he': 'רגיל', 'hi': 'सामान्य', 'hr': 'obično', 'hsb': 'normalny', 'hu': 'normál', 'is': 'venjulegt', 'ja': 'ふつう|標準|normal', 'kab': 'amagnu', 'ka': 'ჩვეულებრივი', 'kk': 'қалыпты', 'km': 'ធម្មតា\u200b', 'kmr_Latn': 'asayî', 'kn': 'ಸಾಮಾನ್ಯ', 'ko': '보통', 'lo': 'ປົກກະຕິ', 'lt': 'įprastinis', 'lv': 'normāls', 'ml': 'സാധാരണ', 'mni': 'নোর্মেল', 'mn': 'энгийн', 'mr': 'सामान्य', 'my': 'ပုံမှန်', 'ne': 'सामान्य', 'nl': 'normaal', 'nr': 'jayelekileko', 'nso': 'tlwaelegilego', 'or': 'ସାଧାରଣ', 'pa_IN': 'ਸਧਾਰਨ', 'ru': 'обычный', 'sa_IN': 'आम', 'sid': 'rosaminoha', 'si': 'සාමාන්\u200dය', 'sk': 'normálne', 'sl': 'navadno', 'sq': 'normale', 'ss': 'vamile', 'st': 'tlwaelehileng', 'ta': 'சாதாரண', 'te': 'సాధారణ', 'th': 'ปกติ', 'tn': 'tlwaelo', 'ts': 'tolovelekeeke', 'tt': 'гадәти', 'ug': 'نورمال', 'uk': 'звичайний', 'vec': 'normałe', 've': 'ḓoweleaho', 'vi': 'thông thường', 'xh': 'ngokuqhelekileyo', 'zh_CN': '一般|常规|normal', 'zh_TW': '一般|normal', 'zu': 'okwejwayelekile'},
2311'FONTFAMILY':{'en_US': 'fontfamily', 'af': 'font familie', 'am': 'የ ፊደል ቤተሰብ', 'ar': 'عائلة_الخط', 'ast': 'familiafonte', 'be': 'гарнітура', 'br': 'spletad nodrezhoù', 'bs': 'fontfamilija', 'ca': 'família.lletra|fl', 'ca_valencia': 'família.lletra|fl', 'ckb': 'خێزانی جۆرەپیت', 'cs': 'druhpísma', 'de': 'schriftart|scha', 'dsb': 'družynapisma|dp', 'el': 'οικογένειαγραμματοσειράς|fontfamily', 'eo': 'tiparofamilio', 'es': 'tipo.letra|letra|fuente', 'et': 'font|kirjatüüp|fondi_perekond', 'eu': 'letrafamilia', 'fi': 'fonttiperhe', 'fr': 'famillepolice', 'fy': 'tekstfamylje', 'gd': "teaghlach a' chruth-chlò", 'gl': 'familia do tipo de letra', 'gu': 'ફોન્ટકુટુંબ', 'he': 'משפחתגופנים', 'hr': 'skupina fontova', 'hsb': 'družinapisma|dp', 'hu': 'betűcsalád', 'is': 'leturtegund', 'ja': '文字の種類|フォントファミリー|fontfamily', 'kab': 'tawaculttasefsit', 'kk': 'қаріптер_отбасы', 'km': 'ក្រុម\u200bពុម្ពអក្សរ', 'kn': 'ಅಕ್ಷರಶೈಲಿಸಮೂಹ', 'ko': '글꼴 모음', 'lo': 'ຮູບແບບຫຼັກຂອງຕົວອັກສອນ', 'lt': 'garnitūras|šriftų.šeima|šš', 'lv': 'fontu_saime', 'mn': 'үсгийн_анги', 'mr': 'फाँटफॅमिलि', 'nb': 'fontfamilie', 'nl': 'tekstfamilie', 'nn': 'skriftfamilie|fontfamily', 'or': 'ଅକ୍ଷରରୂପ ପରିବାର', 'pt_BR': 'mudarTipoDaLetra|mTipLe', 'ro': 'fontfamily|familiefont', 'ru': 'семейство_шрифтов', 'sid': 'borangichumine', 'sk': 'druhpísma|dp', 'sl': 'vrstapisave', 'sq': 'familjaefontit', 'ta': 'எழுத்துரு குடும்பம்', 'te': 'ఫాంట్\u200cఫ్యామిలీ', 'tr': 'yazıtipi ailesi', 'uk': 'гарнітура', 'vec': 'famejafont', 'zh_CN': '字体|字体家族|字型|fontfamily', 'zh_TW': '字型家族|字族|fontfamily'},
2312'CLEARSCREEN':{'en_US': 'clearscreen|cs', 'af': 'skerm uitveë', 'am': 'መመልከቻ ማጽጃ|መ.ማ', 'ar': 'محو_الشاشة|محو', 'ast': 'llimpiapantalla|lp', 'br': 'skarzhañskramm|cs', 'bs': 'očistiekran|cs', 'ca': 'neteja.dibuix|inicia.dibuix|net|id', 'ca_valencia': 'neteja.dibuix|inicia.dibuix|net|id', 'cs': 'smažobrazovku|so', 'de': 'säubern', 'dsb': 'cysćwobrazowku|cw', 'el': 'καθαρισμόςοθόνης|κο|clearscreen|cs', 'eo': 'vakigi_ekranon|ek', 'es': 'limpiar.pantalla|lp|cs', 'et': 'puhasta_ekraan|pe', 'eu': 'garbitupantaila|gp', 'fi': 'tyhjennänäyttö|tn', 'fr': 'effaceécran|ee', 'fy': 'skermleechmakker|skjin|sl', 'gl': 'limparpantalla|lp', 'gug': 'monandipantalla|mp', 'he': 'לנקותמסך|ניקוימסך|נקהמסך|נמ', 'hr': 'očistizaslon|oz', 'hsb': 'čisćwobrazowku|čw', 'hu': 'törölképernyő|törölkép|törölrajzlap|tr', 'is': 'hreinsaskjá|hs', 'ja': '画面を消す|clearscreen|cs', 'kab': 'sfeḍagdil|sa', 'kk': 'экранды_тазарту|эт', 'km': 'សម្អាត\u200bអេក្រង់|cs', 'kn': 'ತೆರೆಅಳಿಸು|cs', 'ko': '화면지우기|cs', 'lo': 'ລ້າງໜ້າຈໍ|cs', 'lt': 'valyk.vėžliuko.lauką|vvl', 'lv': 'attīrīt_ekrānu|ae', 'mn': 'дэлгэц_цэвэрлэ|cs', 'mr': 'क्लिअरस्क्रिन|cs', 'nb': 'tømskjermen|ts', 'nl': 'schermleegmaken|schoon|sl', 'nn': 'tømskjermen|ts|clearscreen', 'or': 'ପରଦା ପରିଷ୍କାର|cs', 'pt_BR': 'tartaruga|tat', 'ro': 'clearscreen|cs|ștergeecran', 'ru': 'очистить_экран|оэ', 'sid': 'coichaleelshalba|cl', 'sk': 'zmažobrazovku|zo', 'sl': 'počistizaslon|pz', 'sq': 'pastroekranin|cs', 'tr': 'ekranıtemizle|cs', 'uk': 'очистити_екран|ое', 'vec': 'netaschermo|cs', 'zh_CN': '清屏|清除|clearscreen|cs', 'zh_TW': '清除畫面|清畫面|清除|clearscreen|cs'},
2313'TEXT':{'en_US': 'text', 'af': 'teks', 'am': 'ጽሁፍ', 'ar': 'نص', 'as': 'লিখনী', 'ast': 'testu', 'be': 'тэкст', 'bn_IN': 'পাঠ্য', 'bn': 'পাঠ্য', 'br': 'testenn', 'brx': 'फराय बिजाब', 'bs': 'tekst', 'ckb': 'دەق', 'cy': 'testun', 'cs': 'popisek', 'dgo': 'इबारत', 'dsb': 'tekst', 'dz': 'ཚིག་ཡིག', 'el': 'κείμενο|text', 'eo': 'teksto', 'es': 'texto', 'et': 'tekst', 'eu': 'testua', 'fa': 'متن', 'fi': 'teksti', 'fr': 'texte', 'fy': 'tekst', 'gd': 'teacsa', 'gl': 'texto', 'gug': "moñe'ẽrã", 'gu': 'લખાણ', 'he': 'טקסט', 'hi': 'पाठ', 'hr': 'tekst', 'hsb': 'tekst', 'hu': 'szöveg', 'is': 'texti', 'ja': '文字|テキスト|text', 'kab': 'aḍris', 'ka': 'ტექსტი', 'kk': 'мәтін', 'km': 'អត្ថបទ', 'kmr_Latn': 'Nivîs', 'kn': 'ಪಠ್ಯ', 'kok': 'मजकूर', 'ko': '텍스트', 'ks': 'مواد', 'lo': 'ຂໍ້ຄວາມ', 'lt': 'tekstas', 'lv': 'teksts', 'mai': 'पाठ', 'mk': 'Текст', 'ml': 'വാചകം', 'mni': 'তেক্স', 'mn': 'бичвэр', 'mr': 'मजकूर', 'my': 'စာသား', 'nb': 'tekst', 'ne': 'पाठ', 'nl': 'tekst', 'nn': 'tekst|text', 'oc': 'tèxte', 'om': 'barruu', 'or': 'ପାଠ୍ୟ', 'pa_IN': 'ਟੈਕਸਟ', 'pt_BR': 'texto', 'ru': 'текст', 'rw': 'umwandiko', 'sa_IN': 'पाठ्यम्', 'sat': 'ओनोलओनोल.', 'sid': 'borro', 'si': 'පෙළ', 'sl': 'besedilo', 'sq': 'tekst', 'sw_TZ': 'matini', 'ta': 'உரை', 'te': 'పాఠ్యము', 'tg': 'матн', 'th': 'ข้อความ', 'tr': 'metin', 'tt': 'Текст', 'ug': 'تېكست', 'uk': 'текст', 'uz': 'matn', 'vi': 'văn bản', 'zh_CN': '文字|文本|text', 'zh_TW': '文字|text'},
2314'HIDETURTLE':{'en_US': 'hideturtle|ht|hideme', 'af': 'verberg', 'am': 'ኤሊ መደበቂያ|ht|ይደብቁኝ', 'ar': 'أخف_السلحفاة|أخف', 'ast': 'anubretortuga|anubrime|at', 'br': 'kuzhatbaot|ht|hideme', 'bs': 'sakrijkornjaču|ht|sakrijmene', 'ca': 'amaga.tortuga|oculta.tortuga|at|ot', 'ca_valencia': 'amaga.tortuga|oculta.tortuga|at|ot', 'cs': 'skryjželvu|skryj|sž', 'de': 'verbergen', 'dsb': 'schowajnopawu|sn', 'el': 'απόκρυψηχελώνας|αχ|κρύψεμε|hideturtle|ht|hideme', 'eo': 'kaŝu_testudon|kt', 'es': 'ocultartortuga|ot|ocultarme', 'et': 'peida|peida_kilpkonn|pk', 'eu': 'ezkutatudortoka|ed|ezkutatuni', 'fi': 'piilotakonna|pk', 'fr': 'cachetortue|ct|cachemoi', 'fy': 'ferbergje|fb', 'gl': 'agochartartaruga|at|agocharme', 'gug': 'mokañykarumbe|ñk|añeñomi', 'he': 'הסתרצב|להסתירצב|הסתרתהצב|להסתיראותי|הס', 'hr': 'sakrikursor|sk|sakrijme', 'hsb': 'schowajnopawu|sn', 'hu': 'elrejt|láthatatlan|elrejtteknőc|rejttek', 'is': 'feladýr|fd|felamig', 'ja': 'タートルを隠す|hideturtle|ht', 'kk': 'тасбақаны_жасыру|тж|мені_жасыру', 'kn': 'ಆಮೆಅಡಗಿಸು|ht|ನನ್ನನ್ನುಅಡಗಿಸು', 'ko': '거북이숨기기|ht|숨기기', 'lo': 'hideturtle|ht|ເຊື່ອງຂ້ອຍ', 'lt': 'slėpk.vėžliuką|slėpkis|sl', 'lv': 'slēpt_rupuci|sr|slēpt_mani', 'mn': 'яст_мэлхийг_нуу|ht|намайг_нуу', 'mr': 'हाइडटर्टल|ht|हाइडमि', 'nb': 'skjulmeg|sm|hideturtle', 'nl': 'verberg|vb', 'nn': 'gøymmeg|gm|hideturtle', 'oc': 'amagartortuga|mt|amagar', 'or': 'କଇଁଛଲୁଚାଇବା|ht|hideme', 'pt_BR': 'desaparecerTat|dt|desapareçaTat|ocultarTat|escondeTat', 'ro': 'hideturtle|ht|hideme|invizibil', 'ru': 'скрыть_черепаху|сч|скрыть_меня', 'sid': 'bukukaamamaaxi|bukukaamamaaxi|bm|anemaaxi', 'sk': 'skrykorytnačku|skry|sk', 'sl': 'skrijželvo|sž|skrijme', 'sq': 'fshihebreshkën|ht|mëfshihmua', 'tr': 'kaplumbağagizle|kg|gizlebeni', 'uk': 'сховай_черепашку|сч', 'vec': 'scondibisascueła|ht|scóndame', 'zh_CN': '隐藏海龟|隐龟|隐藏龟|hideturtle|ht|hideme', 'zh_TW': '隱藏海龜|隱藏|hideturtle|ht|hideme'},
2315'SHOWTURTLE':{'en_US': 'showturtle|st|showme', 'af': 'vertoon', 'am': 'ኤሊ ማሳያ|st|ያሳዩኝ', 'ar': 'أظهر_السلحفاة|أظهر', 'ast': 'amuesatortuga|veme|vt', 'br': 'diskouezbaot|st|showme', 'bs': 'prikažikornjaču|st|prikažimene', 'ca': 'mostra.tortuga|mt', 'ca_valencia': 'mostra.tortuga|mt', 'cs': 'ukažželvu|ukaž|už', 'de': 'zeigen', 'dsb': 'pokažnopawu|pn', 'el': 'εμφάνισηχελώνας|εμφάνισεμε|εε|showturtle|st|showme', 'eo': 'vidigu_testudon|vt', 'es': 'mostrartortuga|mt|mostrarme', 'et': 'näita|näita_kilpkonna|nk', 'eu': 'erakutsidortoka|rd|erakutsini', 'fi': 'näytäkonna|nk', 'fr': 'montretortue|mt|montremoi', 'fy': 'sjenlitte|sl', 'gl': 'amosartartaruga|mt|amosarme', 'gug': 'hechaukakarumbe|hk|ajehecha', 'he': 'הצגצב|להציבצב|הצגתהצב|להציגאותי|הצ', 'hr': 'pokažikursor|st|pokažime', 'hsb': 'pokazajnopawu|pn', 'hu': 'látható', 'is': 'sýnadýr|sd|sýnamig', 'ja': 'タートルを出す|showturtle|st', 'kk': 'тасбақаны_көрсету|тк|мені_көрсету', 'kn': 'ಆಮೆತೋರಿಸು|st|ನನ್ನನ್ನುತೋರಿಸು', 'ko': '거북이표시|st|표시', 'lo': 'showturtle|st|ສະ\u200bແດງ\u200bໃຫ້\u200bຂ້ອຍ\u200bເຫັນ', 'lt': 'rodyk.vėžliuką|rodykis|rd', 'lv': 'rādīt_rupuci|rr|rādīt_mani', 'mn': 'яст_мэлхийг_харуул|ст|намайг_харуул', 'mr': 'शोटर्टल|st|शोमि', 'nb': 'vismeg|vm|showturtle', 'nl': 'toon|tn', 'nn': 'vismeg|vm|showturtle', 'oc': 'afichartortuga|at|afichar', 'or': 'କଇଁଛଦର୍ଶାଇବା|st|showme', 'pt_BR': 'mostrarTat|mostreTat|at|apareçaTat|aparecerTat', 'ro': 'showturtle|st|showme|vizibil', 'ru': 'показать_черепаху|пч|показать_меня', 'sid': 'bukukaleelshi|bukukaleelshi|bl|aneleelshi', 'sk': 'ukážkorytnačku|ukáž|uk', 'sl': 'pokažiželvo|pž|pokažime', 'sq': 'shfaqebreshkën|st|mëshfaqmua', 'tr': 'kaplumbağagöster|kg|benigöster', 'uk': 'покажи_черепашку|пч', 'vec': 'mostrabisascueła|st|móstrame', 'zh_CN': '显示海龟|显示龟|显龟|showturtle|st|showme', 'zh_TW': '顯示海龜|顯示龜|顯示|showturtle|st|showme'},
2316'POSITION':{'en_US': 'position|pos|setpos', 'af': 'posisie|pos', 'am': 'ቦታ|ቦታ|ቦታ ማሰናጃ', 'ar': 'موقع|عين_موقع', 'ast': 'posición|pos|dirposición', 'br': "lec'hiadur|pos|setpos", 'bs': 'pozicija|pos|postavipos', 'ca': 'posició|pos|estableix.posició', 'ca_valencia': 'posició|pos|estableix.posició', 'cs': 'pozice|poz|nastavpoz', 'de': 'position|pos', 'dsb': 'pozicija|poz', 'el': 'θέση|θσ|ορισμόςθέσης|βάλε|position|pos|setpos', 'eo': 'pozicio|poz', 'es': 'posición|pos|fijar.posición', 'et': 'asukoht|koht|määra_koht', 'eu': 'kokagunea|pos|ezarrikokagunea', 'fi': 'paikka', 'fr': 'position|pos|fixepos', 'fy': 'posysje|pos|setpos', 'gl': 'posición|pos|estabelecerposición', 'he': 'מיקום|מקום|הגדרמקום|הגדרתמקום|מקו', 'hr': 'pozicija|poz|postavipoz', 'hsb': 'pozicija|poz', 'hu': 'hely|hely!|pozíció|xy!', 'is': 'staðsetning|stað|setjastað', 'ja': '位置|場所|position', 'kk': 'орны|орн|орнын_көрсету', 'kn': 'ಸ್ಥಾನ|pos|ಸ್ಥಾನಹೊಂದಿಸು', 'ko': '위치|pos|위치설정', 'lo': 'ຕໍາແໜ່ງ|pos|setpos', 'lt': 'eik.į', 'lv': 'pozīcija|poz|iest_poz', 'mn': 'байрлал|pos|байрлал_сонго', 'mr': 'स्थान|पॉस|सेटपॉस', 'nb': 'plassering|plasser|position', 'nl': 'positie|pos|setpos', 'nn': 'plassering|plasser|pos|position', 'oc': 'posicion|pos|definirpos', 'or': 'ସ୍ଥାନ|pos|setpos', 'pt_BR': 'posicionar|pos', 'ro': 'position|pos|setpos|poziție', 'ru': 'позиция|поз|установить_позицию', 'sid': 'ofolla|ofo|ofoqineessi', 'sk': 'pozícia|poz|nastavpoz|np', 'sl': 'položaj|pol|določipoložaj', 'sq': 'pozicioni|pos|vendospozicionin', 'tr': 'konum|knm|knmayarla', 'uk': 'позиція|поз|встановити_позицію', 'vec': 'pozision|pos|inpostapozision', 'zh_CN': '位置|定位|position|pos|setpos', 'zh_TW': '位置|定位|position|pos|setpos'},
2317'HEADING':{'en_US': 'heading|setheading|seth', 'af': 'rigting', 'am': 'ራስጌ|ራስጌ ማሰናጃ|ራ.ማ', 'ar': 'خط\u200cعنوان|عيّن\u200cخط\u200cعنوان', 'ast': 'direición|pondireición|dir', 'br': 'talbenn|setheading|seth', 'bs': 'zaglavlje|postavizaglavlje|seth', 'ca': 'canvia.sentit|sentit|heading|setheading|seth', 'ca_valencia': 'canvia.sentit|sentit', 'cs': 'směr|nastavsměr', 'de': 'richtung|ri', 'dsb': 'směr|sm', 'el': 'επικεφαλίδα|ορισμόςεπικεφαλίδας|ορε|heading|setheading|seth', 'eo': 'direkto|dir', 'es': 'sentido|dirección|dir', 'et': 'pealkiri|määra_pealkiri', 'eu': 'izenburua|ezarriizenburua|ezarrii', 'fi': 'suunta', 'fr': 'cap|fixecap|fc', 'fy': 'rjochting', 'gl': 'cabeceira|estabelecercabeceira|ec', 'he': 'כותרת|הגדרתכותרת|הגכ', 'hr': 'naslov|postavinaslov|postavin', 'hsb': 'směr|sm', 'hu': 'irány|irány!', 'is': 'fyrirsögn|setjafyrirsögn|setf', 'ja': '進む向き|向き|heading', 'kk': 'атауы|атауын_орнату|ата', 'kn': 'ಶೀರ್ಷಿಕೆ|ಶೀರ್ಷಿಕೆಹೊಂದಿಸು|seth', 'ko': '제목|제목설정|seth', 'lo': 'ຫົວເລື່ອງ|ຕັ້ງຄ່າຫົວເລື່ອງ|seth', 'lt': 'žvelk', 'lv': 'azimuts|iestatīt_azimutu|iest_az', 'mn': 'гарчиг|гарчиг_өг|seth', 'mr': 'हेडिंग|सेटहेडिंग|सेटएच', 'nb': 'retning|settretning|heading', 'nl': 'richting', 'oc': 'títol|definirtítol|deft', 'or': 'ଶୀର୍ଷକ|ଶୀର୍ଷକ ବିନ୍ୟାସ|seth', 'pt_BR': 'mudarDireção|mDir|direção', 'ro': 'heading|setheading|seth|direcție', 'ru': 'заголовок|установить_заголовок|заг', 'sid': 'umallo|umalloqineessi|uqineessi', 'sk': 'smer|nastavsmer|ns', 'sl': 'smer|določismer|dols', 'sq': 'koka|vendoskokën|venk', 'tr': 'başlık|başlığıayarla|baş.ayarla', 'uk': 'заголовок|задати_заголовок|заг', 'vec': 'tìtoło|inpostatìtoło|diresion', 'zh_CN': '朝向|定向|heading|setheading|seth', 'zh_TW': '朝向|定向|heading|setheading|seth'},
2318'PAGESIZE':{'en_US': 'pagesize', 'af': 'bladsygrootte', 'am': 'የ ገጽ መጠን', 'ar': 'حجم_الصفحة', 'ast': 'tamañupaxina', 'be': 'памеры_старонкі', 'bn_IN': 'কাগজের মাপ', 'br': 'ment ar bajenn', 'bs': 'veličinastranice', 'ca': 'mida.pàgina|mp', 'ca_valencia': 'mida.pàgina|mp', 'ckb': 'قەبارەی پەڕە', 'cs': 'velikoststránky', 'de': 'seite', 'dsb': 'wjelikosćboka|wb', 'el': 'μέγεθοςσελίδας|pagesize', 'eo': 'paĝogrando', 'es': 'tamañopágina', 'et': 'lehe_suurus', 'eu': 'orritamaina', 'fi': 'sivukoko', 'fr': 'taillepage', 'fy': 'sidegrutte', 'gl': 'tamaño da páxina', 'gug': 'tamañorogue', 'gu': 'પાનાંમાપ', 'he': 'גודלעמוד', 'hr': 'veličinastranice', 'hsb': 'wulkosćstrony|ws', 'hu': 'oldalméret', 'is': 'síðustærð', 'ja': 'ページサイズ|pagesize', 'kab': 'teɣziasebter', 'kk': 'бет_өлшемі', 'km': 'ទំហំ\u200bទំព័រ', 'kn': 'ಪುಟದಗಾತ್ರ', 'ko': '페이지크기', 'lo': 'ຂະຫນາດຂອງຫນ້າ', 'lt': 'lapo.kampas', 'lv': 'lappuses_izmērs', 'ml': 'താള്\u200dവ്യാപ്തി', 'mn': 'хуудасны_хэмжээ', 'mr': 'पेजसाइज', 'nb': 'sidestørrelse|pagesize', 'nl': 'paginagrootte', 'nn': 'sidestorleik|pagesize', 'oc': 'talhapagina', 'or': 'ପୃଷ୍ଠା ଆକାର', 'pt_BR': 'tamanhoDaPágina|tamPág', 'ro': 'pagesize|mărimepagină', 'ru': 'размер_страницы', 'sid': 'qoolubikka', 'sk': 'veľkosťstránky|vs', 'sl': 'velikoststrani', 'sq': 'madhësiaefaqes', 'te': 'పేజీపరిమాణం', 'tr': 'sayfa boyutu', 'uk': 'розмір_сторінки', 'vec': 'grandesapàjina', 'zh_CN': '页面大小|纸张大小|纸大小|页大小|pagesize', 'zh_TW': '頁面大小|紙張大小|頁大小|紙大小|pagesize'},
2319'GROUP':{'en_US': 'picture|pic', 'af': 'afbeelding', 'am': 'ስእል|ስእል', 'ar': 'رسم|صور', 'ast': 'figura|fig', 'bs': 'slika|pic', 'ca': 'figura|fig', 'ca_valencia': 'figura|fig', 'cs': 'obrázek|obr', 'de': 'bild', 'dsb': 'wobraz|wob', 'el': 'εικόνα|εικ|picture|pic', 'eo': 'bildo|b', 'es': 'imagen|img', 'et': 'pilt', 'eu': 'irudia|irud', 'fi': 'kuva', 'fr': 'image|ima', 'fy': 'ôfbylding|ôfb', 'gl': 'imaxe|imx', 'gug': "ta'anga|img", 'he': 'תמונה|תמ', 'hr': 'slika|slika', 'hsb': 'wobraz|wob', 'hu': 'kép', 'is': 'mynd|mnd', 'ja': '図|図のグループ|picture|pic', 'kab': 'tugna|tug', 'kk': 'сурет|сур', 'km': 'រូបភាព|pic', 'kn': 'ಚಿತ್ರ|pic', 'ko': '사진|pic', 'lo': 'ຮູບພາບ|pic', 'lt': 'piešinys', 'lv': 'attēls|att', 'mn': 'зураг', 'mr': 'चित्र|पिक', 'nb': 'bilde|fig|picture', 'nl': 'afbeelding|afb', 'nn': 'bilete|fig|picture', 'oc': 'imatge|img', 'or': 'ଛବି|pic', 'pt_BR': 'agrupar|grupo|grp|figura', 'ro': 'picture|pic|imagine', 'ru': 'изображение|изо', 'sid': 'misile|mis', 'sk': 'obrázok|obr', 'sl': 'slika|sli', 'sq': 'fotografi|fot', 'tr': 'resim|res', 'uk': 'зображення|зобр', 'vec': 'imàjene|fegura', 'zh_CN': '图片|图|图组|组|picture|pic|group', 'zh_TW': '圖片|圖|圖組|picture|pic'},
2320'TO':{'en_US': 'to', 'af': 'na', 'am': 'ለ', 'ar': 'إلى', 'as': 'লৈ', 'ast': 'a', 'bn_IN': 'প্রতি', 'br': 'e', 'bs': 'do', 'ca': 'fins.a', 'ca_valencia': 'fins.a', 'ckb': '\u202bto', 'cs': 'příkaz', 'de': 'zu|als', 'dsb': 'k', 'el': 'σε|to', 'eo': 'al', 'es': 'a', 'et': 'funktsioon|f', 'eu': 'nora', 'fi': 'tee', 'fr': 'à', 'fy': 'nei', 'gd': 'gu', 'gl': 'para', 'gug': 'a', 'gu': 'પ્રતિ', 'he': 'עד', 'hi': 'प्रति', 'hr': 'za', 'hsb': 'k', 'hu': 'ez|eljárás|elj|tanuld', 'is': 'til', 'ja': '動きを作る|to', 'kab': 'ɣer', 'kk': 'қайда', 'km': 'ដល់', 'kn': 'ಗೆ', 'lt': 'tai', 'lv': 'līdz', 'ml': 'ഏങ്ങോട്ട്', 'mn': 'руу', 'mr': 'टु', 'nb': 'til|to', 'nl': 'naar', 'nn': 'til|to', 'oc': 'a', 'or': 'କୁ', 'pt_BR': 'aprender|aprenda', 'ro': 'to|la', 'ru': 'к', 'sid': 'ra', 'sk': 'k', 'sl': 'pri', 'sq': 'tek', 'ta': 'இதற்கு', 'te': 'కు', 'tr': 'buraya', 'uk': 'до', 'zh_CN': '定义|定义起始|起始|to', 'zh_TW': '定義|起|to'},
2321'END':{'en_US': 'end', 'af': 'einde', 'am': 'መጨረሻ', 'ar': 'النهاية', 'as': 'অন্ত', 'ast': 'final', 'bn_IN': 'শেষ', 'bn': 'শেষ', 'bo': 'end_period', 'br': 'Marevezh echuiñ', 'brx': 'जोबनाय', 'bs': 'kraj', 'ca': 'final|fi', 'ca_valencia': 'final|fi', 'ckb': '\u202bend', 'cy': 'diwedd', 'cs': 'konec', 'de': 'ende', 'dgo': 'अंत', 'dsb': 'kóńc', 'dz': 'མཇུག', 'el': 'τέλος|end', 'eo': 'fino', 'es': 'fin', 'et': 'lõpp', 'eu': 'amaiera', 'fi': 'loppu', 'fr': 'fin', 'fy': 'ein', 'gd': 'deireadh', 'gug': 'opa', 'gu': 'અંત', 'he': 'סוף', 'hi': 'अंत', 'hr': 'kraj', 'hsb': 'kónc', 'hu': 'vége', 'is': 'endar', 'ja': 'おわり|end', 'kab': 'tagara', 'kk': 'соңы', 'km': 'ពេលបញ្ចប់', 'kmr_Latn': 'dawî', 'kn': 'ಕೊನೆ', 'kok': 'अंत', 'ko': '최종 기간', 'ks': 'اند', 'lo': 'ຈົບ', 'lt': 'taškas', 'lv': 'beigas', 'mai': 'अंत', 'mk': 'Крај', 'ml': 'അന്ത്യം', 'mni': 'অরোয়বা', 'mn': 'төгсгөл', 'mr': 'एंड', 'my': 'အဆုံးသတ်', 'nb': 'slutt|end', 'ne': 'अन्त्य', 'nl': 'einde', 'nn': 'slutt|end', 'nr': 'phela', 'nso': 'mafelelo', 'oc': 'fin', 'om': 'dhuma', 'or': 'ଶେଷ', 'pa_IN': 'ਅੰਤ', 'pt_BR': 'fim', 'ro': 'end|sfârșit', 'ru': 'конец', 'rw': 'impera', 'sa_IN': 'समाप्तः', 'sat': 'मुचात् मुचा़त्', 'sd': 'آخر', 'sid': 'gofimarcho', 'si': 'අවසානය', 'sk': 'koniec', 'sl': 'konec', 'sq': 'fund', 'ss': 'kugcina', 'st': 'qetello', 'sw_TZ': 'mwisho', 'ta': 'முடிவு', 'te': 'ముగింపు', 'tg': 'Давраи охир', 'th': 'สิ้นสุด', 'tn': 'bofelo', 'tr': 'son', 'ts': 'makumu', 'uk': 'Кін_період', 've': 'magumo', 'vi': 'kết thúc', 'xh': 'ekugqibeleni', 'zh_CN': '定义终|终|结束|end', 'zh_TW': '結束|迄|end', 'zu': 'isiphetho'},
2322'STOP':{'en_US': 'stop', 'am': 'ማስቆሚያ', 'ar': 'أوقف', 'as': 'বন্ধ কৰক', 'ast': 'parar', 'bn_IN': 'থামান', 'br': 'arsaviñ', 'bs': 'zaustavi', 'ca': 'atura|para', 'ca_valencia': 'para', 'ckb': '\u202bstop', 'cy': 'atal', 'cs': 'zastav', 'de': 'stopp', 'dgo': 'रोको', 'el': 'τερματισμός|stop', 'eo': 'haltu', 'es': 'detener', 'et': 'peata', 'eu': 'gelditu', 'fi': 'pysäytä', 'fy': 'ophâlde', 'gd': 'sguir', 'gl': 'parar', 'gug': 'pyta', 'gu': 'અટકાવો', 'he': 'עצור|עצירה|לעצור', 'hi': 'रोकें', 'hr': 'zaustavi', 'hsb': 'stój', 'hu': 'stop|visszatér', 'is': 'stöðva', 'ja': '動きから出る|stop', 'kab': 'seḥbes', 'kk': 'тоқтату', 'km': 'បញ្ឈប់', 'kn': 'ನಿಲ್ಲಿಸು', 'ko': '중지', 'lo': 'ຢຸດ', 'lt': 'baik', 'lv': 'apturēt', 'ml': 'നിര്\u200dത്തുക', 'mn': 'зогс', 'mr': 'स्टॉप', 'my': 'ရပ်ပါ', 'nb': 'stopp|stop', 'nn': 'stopp|stop', 'oc': 'arrestar', 'or': 'ବନ୍ଦ କର', 'pa_IN': 'ਰੋਕੋ', 'pt_BR': 'parar|pare', 'ru': 'стоп', 'sa_IN': 'ठॆहर', 'sd': 'رُڪو', 'sid': 'uurri', 'sk': 'zastav', 'sl': 'ustavi', 'sq': 'ndalo', 'ta': 'நிறுத்து', 'te': 'ఆపుము', 'tr': 'dur', 'uk': 'зупини', 'zh_CN': '停止|中止|stop', 'zh_TW': '中止|止|stop'},
2323'REPEAT':{'en_US': 'repeat|forever', 'af': 'herhaal', 'am': 'መድገሚያ|ለዘለአለም', 'ar': 'كرر|للأبد', 'ast': 'repetir|pasiempres', 'be': 'паўтараць|бясконца', 'br': 'arren|forever', 'bs': 'ponavljaj|zauvijek', 'ca': 'repeteix|rep', 'ca_valencia': 'repeteix|rep', 'ckb': '\u202brepeat|forever', 'cs': 'opakuj|pořád', 'de': 'wiederhole|wdh', 'dsb': 'wóspjetuj|wsp', 'el': 'επανάληψη|repeat|forever', 'eo': 'ripetu|ĉiame|ĉiam', 'es': 'repetir|rep|siempre', 'et': 'korda|igavesti|lõpmatuseni', 'eu': 'errepikatu|betiko', 'fi': 'toista', 'fr': 'répète|toujours', 'fy': 'werhelje|foaraltyd', 'gl': 'repetir|sempre', 'gug': "ha'ejevy|tapia", 'he': 'חזרה|לעד|לנצח|לתמיד', 'hr': 'ponavljaj|zauvijek', 'hsb': 'wospjetuj|wsp', 'hu': 'ismét|ism|ismétlés|végtelenszer|vszer', 'is': 'endurtaka|endalaust', 'ja': 'くりかえす|repeat', 'kab': 'ales|yal ass', 'kk': 'қайталау|шексіз', 'km': 'ធ្វើ\u200bឡើង\u200bវិញ|រហូត', 'kn': 'ಪುನರಾವರ್ತಿಸು|ಯಾವಾಗಲೂ', 'ko': '반복|계속', 'lo': 'ເຮັດຊ້ຳ|ຕະຫຼອດໄປ', 'lt': 'kartok|amžinai', 'lv': 'atkārtot|mūžīgi', 'mn': 'давтах|үүрд', 'mr': 'रिपिट|फॉरएव्हेर', 'nb': 'gjenta|for alltid|repeat', 'nl': 'herhaal|vooraltijd', 'nn': 'gjenta|for alltid|repeat', 'or': 'ପୁନରାବୃତ୍ତି|forever', 'pt_BR': 'repetir|repita', 'ro': 'repeat|forever|repetă', 'ru': 'повторять|бесконечно', 'sid': 'wirroqoli|hegerera', 'sk': 'opakovať|stále', 'sl': 'ponovi|neskončno', 'sq': 'përsërit|përgjithmonë', 'tr': 'tekrarla|sürekli', 'uk': 'завжди', 'vec': 'repeti|senpre', 'zh_CN': '重复|repeat|forever', 'zh_TW': '重複|重復|永遠|repeat|forever'},
2324'REPCOUNT':{'en_US': 'repcount', 'af': 'herhaal teller', 'ar': 'عداد_التكرار', 'ast': 'repetirvegaes', 'br': 'arren ar gont', 'bs': 'repbroji', 'ca': 'repeteix.vegades|repv', 'ca_valencia': 'repeteix.vegades|repv', 'ckb': '\u202bbreak', 'cs': 'počítadlo|poč', 'de': 'zähler', 'dsb': 'licak', 'el': 'αριθμόςεπαναλήψεων|repcount', 'eo': 'ripetonombro', 'es': 'conteo.veces', 'et': 'korduse_number', 'eu': 'errepzenbak', 'fi': 'toistokerrat', 'fr': 'nombrerep', 'fy': 'kearwerhelje', 'gl': 'contarep', 'gug': "ha'ejevy.papa", 'he': 'ספירתחזרה', 'hr': 'br. ponavljanja', 'hsb': 'ličak', 'hu': 'hányadik', 'is': 'endurtekningafjöldi', 'ja': 'くりかえした数|repcount', 'kk': 'қайталау', 'lt': 'kartojimai', 'lv': 'atkārt_skaits', 'mn': 'тоологч', 'mr': 'रिपकाउंट', 'nb': 'teller|repcount', 'nl': 'keerherhaal', 'nn': 'teljar|repcount', 'or': 'ପୁନରାବୃତ୍ତି ସଂଖ୍ୟା', 'pt_BR': 'contVezes|conteVezes', 'ro': 'repcount|câtelea', 'ru': 'повторить', 'sid': 'wirrotekiiro', 'sk': 'počítadlo|poč', 'sl': 'števecpon', 'sq': 'numërimirep', 'te': 'రెప్\u200cకౌంట్', 'tr': 'tekrarsayısı', 'uk': 'повтори', 'vec': 'contavolte', 'zh_CN': '重复数|repcount', 'zh_TW': '重複數|重復數|repcount'},
2325'BREAK':{'en_US': 'break', 'af': 'breuk', 'am': 'መጨረሻ', 'ar': 'اكسر', 'ast': 'saltu', 'bn_IN': 'বিরতি', 'br': 'rannadur', 'bs': 'iskoči', 'ca': 'salta|trenca', 'ca_valencia': 'salta|trenca', 'ckb': '\u202bbreak', 'cy': 'toriad', 'cs': 'ukonči', 'de': 'abbruch', 'dsb': 'pśetergnuś', 'el': 'διακοπή|break', 'eo': 'saltu', 'es': 'saltar|interrumpir', 'et': 'katkesta', 'eu': 'jauzia', 'fi': 'keskeytä', 'fr': 'saut', 'fy': 'ôfbrekke', 'gl': 'quebrar', 'gug': 'kytĩ', 'gu': 'વિભાજક', 'he': 'שבירה|לשבור', 'hi': 'खण्डन', 'hr': 'prijelom', 'hsb': 'přetorhnyć', 'hu': 'kilép', 'id': 'pemisah', 'is': 'rofstaður', 'ja': 'くりかえしから出る|break', 'kab': 'yerrez', 'ka': 'შეწყვეტა', 'kk': 'үзу', 'km': 'បំបែក', 'kn': 'ತಡೆ', 'ko': '분할', 'lo': 'ແຕກ', 'lt': 'nutrauk', 'lv': 'pārtraukt', 'ml': 'വിഭജിക്കുക', 'mn': 'цуцлах', 'mr': 'ब्रेक', 'my': 'ကြားဖြတ်ပါ', 'nb': 'avbryt|break', 'ne': 'विच्छेद', 'nl': 'afbreken', 'nn': 'avbryt|break', 'oc': 'fraccionar', 'or': 'ଭାଙ୍ଗ', 'pa_IN': 'ਬਰੇਕ', 'pt_BR': 'interromper|interrompa', 'ro': 'break|întrerupere', 'ru': 'прервать', 'sid': 'tayisi', 'si': 'බිදුම', 'sk': 'Zalomenie', 'sl': 'prekini', 'sq': 'braktis', 'ta': 'முறி', 'te': 'విరుపు', 'tr': 'sonlandır', 'uk': 'перерви', 'vec': 'spaca', 'vi': 'Ngắt', 'zh_CN': '中断|break', 'zh_TW': '中斷|斷|break'},
2326'CONTINUE':{'en_US': 'continue', 'af': 'gaan voort', 'am': 'ይቀጥሉ', 'ar': 'تابع', 'as': 'অব্যাহত ৰাখক', 'ast': 'siguir', 'be': 'працягваць', 'bn_IN': 'পরবর্তী (~C)', 'br': "kenderc'hel", 'bs': 'nastavak', 'ca': 'continua', 'ca_valencia': 'continua', 'ckb': '\u202bcontinue', 'cy': 'parhau', 'cs': 'pokračuj', 'de': 'weiter', 'dsb': 'dalej', 'el': 'συνέχεια|continue', 'eo': 'daŭrigu', 'es': 'continuar', 'et': 'jätka', 'eu': 'jarraitu', 'fi': 'jatka', 'fr': 'continuer', 'fy': 'trochgean', 'gl': 'continuar', 'gug': 'segui', 'gu': 'ચાલુ રાખો', 'he': 'המשך|להמשיך', 'hi': 'जारी रखें', 'hr': 'nastavi', 'hsb': 'dale', 'hu': 'újra', 'is': 'áfram', 'ja': 'はじめにもどる|continue', 'kab': 'kemmel', 'ka': 'გაგრძელება', 'kk': 'жалғастыру', 'km': 'បន្ត', 'kn': 'ಮುಂದುವರಿಸು', 'ko': '계속', 'lo': 'ສຶບຕໍ່', 'lt': 'tęsk', 'lv': 'turpināt', 'ml': 'തുടരുക', 'mn': 'үргэлжлүүл', 'mr': 'कंटिन्यु', 'my': 'ဆက်လုပ်ပါ', 'nb': 'fortsett|continue', 'ne': 'जारी राख्नुहोस्', 'nl': 'doorgaan|verdergaan', 'nn': 'hald fram|continue', 'oc': 'contunhar', 'or': 'ଚାଲୁରଖ', 'pa_IN': 'ਜਾਰੀ ਰੱਖੋ', 'pt_BR': 'continuar|continue', 'ro': 'continue|continuă', 'ru': 'продолжить', 'sid': 'albisufi', 'si': 'දිගටම කරගෙන යන්න (~C)', 'sk': 'Pokračovať', 'sl': 'nadaljuj', 'sq': 'vazhdo', 'ta': 'தொடர்', 'te': 'కొనసాగించు', 'tr': 'devam', 'uk': 'продовжити', 'vec': 'continua', 'vi': 'Tiếp tục', 'zh_CN': '继续|continue', 'zh_TW': '繼續|續|continue'},
2327'WHILE':{'en_US': 'while', 'af': 'terwyl', 'am': 'ትንሽ', 'ar': 'طالما', 'ast': 'mentanto', 'be': 'пакуль', 'bn_IN': 'যেখানে', 'br': 'e pad ma', 'bs': 'dok', 'ca': 'mentre', 'ca_valencia': 'mentre', 'ckb': '\u202bwhile', 'cs': 'dokud', 'de': 'solange', 'dsb': 'mjaztymaž', 'el': 'όσο|while', 'eo': 'dum', 'es': 'mientras', 'et': 'kuniks', 'eu': 'bitartean', 'fi': 'kunhan', 'fr': 'pendant', 'fy': 'salang', 'gl': 'mentres', 'gug': 'jave', 'gu': 'સફેદ', 'he': 'כלעוד', 'hi': 'के दौरान', 'hr': 'bijela', 'hsb': 'doniž', 'hu': 'amíg', 'is': 'meðan', 'ja': 'くりかえすのは次の間|while', 'kab': 'ticki', 'ka': 'თეთრი', 'kk': 'дейін', 'kn': 'ಬಿಳಿ', 'ko': '흰색', 'lo': 'ໃນຂະນະທີ່', 'lt': 'kol', 'lv': 'kamēr', 'mn': 'байхад', 'mr': 'व्हाइल', 'nb': 'mens|while', 'ne': 'सेतो', 'nl': 'zolang', 'nn': 'medan|while', 'oc': 'mentre', 'or': 'ଯେତେବେଳେ', 'pa_IN': 'ਚਿੱਟਾ', 'pt_BR': 'enquanto', 'ro': 'while|până', 'ru': 'пока', 'sid': 'waajjo', 'si': 'සුදු', 'sk': 'pokiaľ', 'sl': 'dokler', 'sq': 'ndërsa', 'te': 'జరుగుతున్నప్పుడు', 'tr': 'beyaz', 'uk': 'поки', 'vec': 'intanto', 'zh_CN': '当|while', 'zh_TW': '當|while'},
2328'FOR':{'en_US': 'for', 'af': 'vir', 'am': 'ለ', 'ar': 'لـ', 'as': 'কাৰণে', 'ast': 'pa', 'be': 'для', 'bn_IN': 'জন্য', 'bn': 'জন্য', 'bo': 'ལ་སྤྱོད།', 'br': 'evit', 'brx': 'थाखाय', 'bs': 'za', 'ca': 'per.a', 'ca_valencia': 'per.a', 'ckb': '\u202bfor', 'cy': 'ar gyfer', 'cs': 'pro', 'de': 'für', 'dgo': 'लेई', 'dsb': 'za', 'dz': 'དོན་ལུ།', 'el': 'γιαόσο|for', 'eo': 'por', 'es': 'para', 'et': 'igale_elemendile', 'eu': 'honentzat', 'fa': 'برای', 'fi': 'jokaiselle', 'fr': 'pour', 'fy': 'foar', 'gd': 'airson', 'gl': 'Para', 'gug': 'haguã', 'gu': 'માટે', 'he': 'עבור', 'hi': 'के लिए', 'hr': 'za', 'hsb': 'za', 'hu': 'fut', 'is': 'fyrir', 'ja': 'ひとつずつ|for', 'kab': 'i', 'ka': '-', 'kk': 'үшін', 'km': 'សម្រាប់', 'kmr_Latn': 'ji bo', 'kn': 'ಗಾಗಿ', 'kok': 'खातीर', 'ko': '유형', 'ks': 'کےلئے', 'lo': 'ສຳລັບ', 'lt': 'ciklas.intervale|nuo.iki', 'lv': 'katram', 'mai': "क'लेल", 'mk': 'за', 'ml': 'വേണ്ടി', 'mni': '-গীদমক', 'mn': 'хувьд', 'mr': 'फॉर', 'my': 'အတွက်', 'ne': 'लागि', 'nl': 'voor', 'nr': 'kwe', 'nso': 'bakeng sa', 'oc': 'per', 'om': 'kanaaf', 'or': 'ପାଇଁ', 'pa_IN': 'ਲਈ', 'pt_BR': 'para', 'ro': 'for|pentru', 'ru': 'для', 'rw': 'Cya', 'sa_IN': 'कृते', 'sat': 'ला़गितला़गित्', 'sd': 'لاءِ', 'sid': 'ra', 'si': 'සඳහා', 'sk': 'pre', 'sl': 'za', 'sq': 'për', 'ss': 'ye', 'st': 'bakeng sa', 'sw_TZ': 'kwa', 'te': 'కొరకు', 'tg': 'барои', 'th': 'สำหรับ', 'tn': 'ya', 'tr': 'için', 'ts': 'eka', 'ug': 'ئۈچۈن', 'uk': 'для', 'uz': 'uchun', 've': 'u itela', 'vi': 'cho', 'xh': 'ukwenzela', 'zh_CN': '取|for', 'zh_TW': '取|for', 'zu': 'kwe'},
2329'IN':{'en_US': 'in', 'af': 'dm', 'am': 'ኢንች', 'ar': 'في', 'as': 'ইন', 'ast': 'en', 'be': 'у', 'bn_IN': 'ইঞ্চি', 'bn': 'ইঞ্চি', 'bo': 'དབྱིན་ཚུན།', 'br': 'e', 'bs': 'u', 'ca': 'a|en', 'ca_valencia': 'a|en', 'ckb': '\u202bin', 'cy': 'mod', 'cs': 'z', 'dgo': 'इं', 'dsb': 'w', 'dz': 'ཨའི་ཨེན།', 'el': 'στο', 'eo': 'en', 'es': 'en', 'et': 'hulgas', 'eu': 'hemen', 'fa': 'اینچ', 'fi': ':ssa|:ssä', 'fr': 'dans', 'fy': 'yn', 'gd': 'òirleach', 'gl': 'pol', 'gug': 'en', 'he': 'בתוך', 'hi': 'इंच', 'hr': 'dolazno', 'hsb': 'w', 'hu': '-ban|-ben', 'is': 'í', 'ja': 'を次から取り出して|in', 'kab': 'di', 'ka': 'დი', 'kk': 'ішінде', 'km': 'គិត\u200bជា', 'kmr_Latn': 'înç', 'kok': 'इंच', 'ks': 'میں', 'lo': 'ໃນ', 'lt': 'kur', 'lv': 'iekš', 'mai': 'इँच', 'mk': 'инчи', 'mni': 'ইন', 'mn': 'дотор', 'mr': 'इन', 'my': 'လက်မ', 'nb': 'tommer|in', 'nn': 'i|in', 'nso': 'go', 'oc': 'dins', 'or': 'ରେ', 'pt_BR': 'em', 'ro': 'in|în', 'ru': 'в', 'sd': '۾', 'sid': 'giddo', 'sl': 'v', 'sq': 'në', 'sw_TZ': 'katika', 'ta': 'அங்.', 'te': 'లోపల', 'tg': 'ин', 'th': 'น.', 'tn': 'gare', 'ts': 'endzeni', 'ug': 'ديۇيم', 'uk': 'дюйм', 'uz': 'dyuym', 'xh': 'ngaphakathi', 'zh_CN': '自|in', 'zh_TW': '自|in', 'zu': 'phakathi'},
2330'IF':{'en_US': 'if', 'af': 'as', 'am': 'ከ', 'ar': 'إن', 'ast': 'si', 'be': 'калі', 'bn_IN': 'যদি', 'br': 'mar', 'bs': 'ako', 'ca': 'si', 'ca_valencia': 'si', 'ckb': '\u202bif', 'cs': 'když', 'de': 'wenn', 'dgo': 'IF', 'dsb': 'jolic', 'el': 'αν|if', 'eo': 'se', 'es': 'si', 'et': 'kui', 'eu': 'bada', 'fi': 'jos', 'fr': 'si', 'fy': 'as', 'gl': 'se', 'gug': 'si', 'gu': 'જો', 'he': 'אם', 'hi': 'यदि', 'hr': 'ako', 'hsb': 'jeli', 'hu': 'ha', 'is': 'ef', 'ja': 'もし|if', 'kab': 'ma', 'kk': 'егер', 'kn': 'ಇದು ಆದಲ್ಲಿ', 'kok': 'IF', 'lo': 'ຖ້າວ່າ', 'lt': 'jeigu.tiesa', 'lv': 'ja', 'ml': 'എങ്കില്\u200d', 'mn': 'хэрэв', 'mr': 'इफ', 'nb': 'dersom|hvis|if', 'nl': 'als', 'nn': 'dersom|viss|if', 'oc': 'se', 'or': 'ଯଦି', 'pt_BR': 'se', 'ro': 'if|dacă', 'ru': 'если', 'sa_IN': 'IF', 'sat': 'IF', 'sid': 'ikkiro', 'sk': 'ak', 'sl': 'če', 'sq': 'nëse', 'te': 'ఒకవేళ', 'tr': 'eğer', 'uk': 'якщо', 'zh_CN': '如果|若|if', 'zh_TW': '若|if'},
2331'OUTPUT':{'en_US': 'output', 'af': 'uitvoer', 'am': 'ውጤት', 'ar': 'أخرِج', 'as': 'আউটপুট', 'ast': 'salida', 'be': 'вывад', 'bn_IN': 'আউটপুট', 'br': "ec'hankad", 'bs': 'izlaz', 'ca': 'sortida', 'ca_valencia': 'eixida', 'ckb': 'دەرخستە', 'cy': 'allbwn', 'cs': 'výsledek', 'de': 'rückgabe', 'dsb': 'wudaśe', 'el': 'έξοδος|output', 'eo': 'eligaĵo', 'es': 'salida', 'et': 'väljund', 'eu': 'Irteera', 'fi': 'kirjoita', 'fr': 'sortie', 'fy': 'útfier', 'gl': 'saída', 'gug': 'ñeseha', 'gu': 'આઉટપુટ', 'he': 'פלט', 'hi': 'आउटपुट', 'hr': 'rezultat', 'hsb': 'wudaće', 'hu': 'eredmény', 'is': 'frálag', 'ja': '値を返す|output', 'kab': 'tuffɣa', 'ka': 'გამონატანი', 'kk': 'шығыс', 'km': 'លទ្ធផល', 'kn': 'ಔಟ್\u200cಪುಟ್', 'ko': '출력', 'lo': 'ຜົນອອກ', 'lt': 'grąžink|išvesk', 'lv': 'izvade', 'ml': 'ഔട്ട്പുട്ട്', 'mn': 'хариу', 'mr': 'आउटपुट', 'my': 'အထုတ်', 'nb': 'utdata|output', 'ne': 'निर्गत', 'nl': 'output|uitvoer', 'nn': 'utdata|output', 'oc': 'sortida', 'or': 'ଫଳାଫଳ', 'pa_IN': 'ਆਉਟਪੁੱਟ', 'pt_BR': 'retornar|retorne|devolver|devolva|envie', 'ro': 'output|ieșire', 'ru': 'вывод', 'sid': 'guma', 'si': 'ප්\u200dරතිදානය', 'sk': 'Výstup', 'sl': 'izhod', 'sq': 'rezultati', 'ta': 'வெளியீடு', 'te': 'అవుట్పుట్', 'tr': 'çıktı', 'uk': 'вивести', 'vi': 'Đầu ra', 'zh_CN': '输出|output', 'zh_TW': '輸出|output'},
2332'LEFTSTRING':{'en_US': '“|‘', 'ast': '“|‘|«', 'ca': '“|‘|«', 'cs': '„|"', 'de': '„|‚|"|\'', 'dsb': '„|‚|"|\'', 'el': '“|‘|"|\'', 'es': '“|‘|«', 'et': '„', 'fi': '"|\'|”', 'hsb': '„|‚|"|\'', 'hu': '„', 'lt': '„|“|‘', 'nn': '“|‘|«', 'sk': '„|"', 'zh_CN': '「|『|“|‘', 'zh_TW': '「|『|“|‘'},
2333'RIGHTSTRING':{'en_US': '”|’', 'ast': '”|’|»', 'ca': '”|’|»', 'cs': '“|"', 'de': '“|‘|"|\'', 'dsb': '“|‘|"|\'', 'el': '”|’|"|\'', 'es': '”|’|»', 'et': '”|“', 'fi': '"|\'|”', 'hsb': '“|‘|"|\'', 'hu': '”', 'lt': '“|”|’', 'nn': '”|’|»', 'sk': '“|"', 'zh_CN': '」|』|”|’', 'zh_TW': '」|』|”|’'},
2334'TRUE':{'en_US': 'true', 'af': 'waar', 'am': 'እውነት', 'ar': 'صحيح', 'as': 'সঁচা', 'ast': 'braero', 'be': 'сапраўдна', 'bn_IN': 'সত্য', 'bn': 'সত্য', 'br': 'gwir', 'ca': 'cert|veritat', 'ca_valencia': 'cert|veritat', 'ckb': '\u202btrue', 'cy': 'gwir', 'cs': 'pravda', 'de': 'wahr', 'dsb': 'wěrno', 'el': 'αληθής|true', 'eo': 'vera', 'es': 'verdadero', 'et': 'tõene', 'eu': 'egiazkoa', 'fi': 'tosi', 'fr': 'vrai', 'fy': 'wier', 'gl': 'verdadeiro', 'gug': 'ete', 'gu': 'સાચુ', 'he': 'אמת', 'hi': 'सही', 'hr': 'točno', 'hsb': 'wěrno', 'hu': 'igaz', 'is': 'satt', 'ja': '真|なりたつ|true', 'kab': 'uzɣan', 'ka': 'ჭეშმარიტი', 'kk': 'ақиқат', 'km': 'ពិត', 'kmr_Latn': 'rast e', 'kn': 'ಸತ್ಯ', 'ko': '참', 'lo': 'ຖືກ', 'lt': 'tiesa', 'lv': 'patiess', 'mn': 'үнэн', 'mr': 'ट्रु', 'my': 'အမှန်', 'nb': 'sann|true', 'ne': 'सत्य', 'nl': 'waar', 'nn': 'sann/true', 'oc': 'verai', 'om': 'dhugaa', 'pa_IN': 'ਸਹੀਂ', 'pt_BR': 'verdadeiro|verd', 'ro': 'true|adevărat', 'ru': 'истина', 'sid': 'halaale', 'si': 'සත්\u200dය', 'sk': 'pravda', 'sl': 'jeresnično', 'sq': 'e vërtetë', 'ta': 'உண்மை', 'te': 'సత్యము', 'tg': 'саҳеҳ', 'th': 'จริง', 'tr': 'doğru', 'ug': 'راست', 'uk': 'істина', 'vi': 'đúng', 'zh_CN': '真|true', 'zh_TW': '真|true'},
2335'FALSE':{'en_US': 'false', 'af': 'onwaar', 'am': 'ሀሰት', 'ar': 'خطأ', 'as': 'মিছা', 'ast': 'falso', 'be': 'несапраўдна', 'bn_IN': 'মিথ্যা', 'bn': 'মিথ্যা', 'br': 'diwir', 'ca': 'fals', 'ca_valencia': 'fals', 'ckb': '\u202bfalse', 'cy': 'ffug', 'cs': 'nepravda', 'de': 'falsch', 'dsb': 'wopak', 'el': 'ψευδής|false', 'eo': 'falsa', 'es': 'falso', 'et': 'väär', 'eu': 'faltsua', 'fi': 'epätosi', 'fr': 'faux', 'fy': 'ûnwier', 'gl': 'falso', 'gug': 'japu', 'gu': 'ખોટુ', 'he': 'שקר', 'hi': 'गलत', 'hr': 'netočno', 'hsb': 'wopak', 'hu': 'hamis', 'is': 'ósatt', 'ja': '偽|なりたたない|false', 'kab': 'aruzɣan', 'ka': 'მცდარი', 'kk': 'жалған', 'km': 'មិន\u200bពិត', 'kmr_Latn': 'şaşî ye', 'kn': 'ಅಸತ್ಯ', 'ko': '거짓', 'lo': 'ຜິດ', 'lt': 'melas', 'lv': 'aplams', 'mn': 'худал', 'mr': 'फॉल्स', 'my': 'အမှား', 'nb': 'usann|false', 'ne': 'झूटो', 'nl': 'onwaar', 'nn': 'usann|false', 'oc': 'fals', 'om': 'soba', 'pa_IN': 'ਗਲਤ', 'pt_BR': 'falso', 'ro': 'false|fals', 'ru': 'ложь', 'sid': 'xara', 'si': 'අසත්\u200dය', 'sk': 'nepravda', 'sl': 'niresnično', 'sq': 'e pasaktë', 'ta': 'தவறு', 'te': 'అసత్యము', 'tg': 'дурӯғ', 'th': 'เท็จ', 'tr': 'yanlış', 'ug': 'يالغان', 'uk': 'хиба', 'vi': 'sai', 'zh_CN': '假|false', 'zh_TW': '假|false'},
2336'NOT':{'en_US': 'not', 'af': 'nie', 'am': 'አይደለም', 'ar': 'ليس', 'ast': 'non', 'be': 'не', 'bn_IN': 'নয়', 'br': 'ket', 'bs': 'ne', 'ca': 'no', 'ca_valencia': 'no', 'ckb': '\u202bnot', 'cs': 'není', 'de': 'nicht', 'dgo': 'NOT', 'dsb': 'nic', 'el': 'όχι|not', 'eo': 'ne', 'es': 'no', 'et': 'pole|mitte|ei', 'eu': 'ez', 'fi': 'ei', 'fr': 'non', 'fy': 'net', 'gd': 'chan e', 'gl': 'non', 'gug': 'no', 'gu': 'નથી', 'he': 'לא', 'hi': 'नहीं', 'hr': 'nije', 'hsb': 'nic', 'hu': 'nem', 'is': 'ekki', 'ja': '正しくない|否|not', 'kab': 'mačči', 'kk': 'емес', 'kn': 'ಇಲ್ಲ', 'kok': 'NOT', 'ko': '없음', 'lo': 'ບໍ່', 'lt': 'priešingai', 'lv': 'nav', 'mn': 'үгүй', 'mr': 'नॉट', 'nb': 'ikke|not', 'nl': 'niet', 'nn': 'ikkje|not', 'oc': 'non', 'or': 'ନୁହଁ', 'pa_IN': 'ਨਹੀਂ', 'pt_BR': 'não', 'ro': 'not|nu', 'ru': 'не', 'sa_IN': 'NOT', 'sat': 'NOT', 'sd': 'NOT', 'sid': "dee'ni", 'sk': 'nieje', 'sl': 'ni', 'sq': 'jo', 'te': 'కాదు', 'tr': 'değil', 'uk': 'не', 'zh_CN': '非|not', 'zh_TW': '非|not'},
2337'AND':{'en_US': 'and', 'af': 'en', 'am': 'እና', 'ar': 'و', 'ast': 'y', 'be': 'і', 'bn_IN': 'এবং', 'bn': 'এবং', 'br': 'ha', 'brx': 'आरो', 'bs': 'i', 'ca': 'i', 'ca_valencia': 'i', 'ckb': '\u202band', 'cy': 'a', 'cs': 'azároveň|az', 'de': 'und', 'dsb': 'a', 'dz': 'དང་།', 'el': 'και|and', 'eo': 'kaj', 'es': 'y', 'et': 'ja', 'eu': 'eta', 'fa': 'و', 'fi': 'ja', 'fr': 'et', 'fy': 'en', 'gd': 'agus', 'gl': 'e', 'gug': 'ha', 'gu': 'અને', 'he': 'וגם', 'hi': 'और', 'hr': 'i', 'hsb': 'a', 'hu': 'és', 'is': 'og', 'ja': 'と|かつ|and', 'kab': 'akked', 'ka': 'და', 'kk': 'және', 'km': 'និង', 'kmr_Latn': 'û', 'kn': 'ಮತ್ತು', 'kok': 'आनिक', 'ko': '및', 'ks': 'بےیئ', 'lb': 'an', 'lo': 'ແລະ', 'lt': 'kiekvienas', 'lv': 'un', 'mai': 'आओर', 'mn': 'ба', 'mr': 'अँड', 'my': 'နှင့်', 'nb': 'og|and', 'nl': 'en', 'nn': 'og|and', 'nso': 'le', 'oc': 'e', 'om': 'fi', 'or': 'ଏବଂ', 'pa_IN': 'ਅਤੇ', 'pt_BR': 'e', 'ro': 'and|și', 'ru': 'и', 'rw': 'na', 'sa_IN': 'च', 'sat': 'आर आर', 'sd': '۽', 'sid': 'nna', 'si': 'සහ', 'sk': 'a', 'sl': 'in', 'sq': 'dhe', 'ss': 'ne', 'st': 'le', 'sw_TZ': 'na', 'te': 'మరియు', 'tg': 'ва', 'th': 'และ', 'tn': 'le', 'tr': 've', 'tt': 'һәм', 'ug': 'ۋە', 'uk': 'та', 'uz': 'va', 'vec': 'e', 've': 'na', 'vi': 'và', 'xh': 'kunye', 'zh_CN': '且|与|and', 'zh_TW': '且|and', 'zu': 'kanye'},
2338'OR':{'en_US': 'or', 'af': 'of', 'am': 'ወይም', 'ar': 'أو', 'ast': 'o', 'be': 'або', 'bn_IN': 'অথবা', 'bn': 'অথবা', 'bo': 'ཡང་ན།', 'br': 'pe', 'brx': 'एबा', 'bs': 'ili', 'ca': 'o', 'ca_valencia': 'o', 'ckb': '\u202bor', 'cy': 'neu', 'cs': 'nebo', 'de': 'oder', 'dgo': 'जां', 'dsb': 'abo', 'dz': 'ཡང་ན།', 'el': 'ή|or', 'eo': 'aŭ', 'es': 'o', 'et': 'või', 'eu': 'edo', 'fa': 'یا', 'fi': 'tai', 'fr': 'ou', 'fy': 'of', 'gd': 'no', 'gl': 'ou', 'gug': 'o', 'gu': 'અથવા', 'he': 'או', 'hi': 'या', 'hr': 'ili', 'hsb': 'abo', 'hu': 'vagy', 'is': 'eða', 'ja': 'または|or', 'kab': 'neɣ', 'ka': 'ან', 'kk': 'немесе', 'kmr_Latn': 'an jî', 'kn': 'ಅಥವ', 'kok': 'वा', 'ko': '또는', 'ks': 'یا', 'lb': 'oder', 'lo': 'ຫຼື', 'lt': 'nors.vienas|arba|or', 'lv': 'vai', 'mai': 'अथवा', 'mni': 'নত্রগা', 'mn': 'буюу', 'mr': 'ऑर', 'my': 'သို့မဟုတ်', 'nb': 'eller|or', 'ne': 'वा', 'nl': 'of', 'nn': 'eller|or', 'nr': 'namkha', 'nso': 'goba', 'oc': 'o', 'om': 'ykn', 'or': 'କିମ୍ବା', 'pa_IN': 'ਜਾਂ', 'pt_BR': 'ou', 'ro': 'or|sau', 'ru': 'или', 'rw': 'cyangwa', 'sa_IN': 'वा', 'sat': 'आर', 'sd': 'يا', 'sid': 'woy', 'si': 'හෝ', 'sk': 'alebo', 'sl': 'ali', 'sq': 'ose', 'ss': 'nome', 'st': 'kapa', 'sw_TZ': 'au', 'te': 'లేదా', 'tg': 'ё', 'th': 'หรือ', 'tn': 'kgotsa', 'tr': 'veya', 'ts': 'kumbe', 'tt': 'яки', 'ug': 'ياكى', 'uk': 'або', 'uz': 'yoki', 've': 'kana', 'vi': 'hoặc', 'xh': 'okanye', 'zh_CN': '或|or', 'zh_TW': '或|or', 'zu': 'noma'},
2339'INPUT':{'en_US': 'input', 'af': 'invoer', 'am': 'ማስገቢያ', 'ar': 'أدخِل', 'ast': 'entrada', 'be': 'увод', 'bn_IN': 'ইনপুট', 'br': 'enankañ', 'bs': 'ulaz', 'ca': 'entrada', 'ca_valencia': 'entrada', 'ckb': 'تێخستە', 'cy': 'mewnbwn', 'cs': 'vstup', 'de': 'eingabe', 'dgo': 'इनपुट', 'dsb': 'zapódaśe', 'el': 'είσοδος|input', 'eo': 'enigu', 'es': 'entrada', 'et': 'sisend', 'eu': 'sarrera', 'fi': 'syötä', 'fr': 'saisie', 'fy': 'ynfier', 'gl': 'entrada', 'gug': 'jeikeha', 'gu': 'ઈનપુટ', 'he': 'קלט', 'hi': 'इनपुट', 'hr': 'unos', 'hsb': 'zapodaće', 'hu': 'be', 'is': 'inntak', 'ja': '値を聞く|input', 'kab': 'asekcem', 'ka': 'შეტანა', 'kk': 'кіріс', 'km': '\u200bបញ្ចូល', 'kn': 'ಇನ್\u200cಪುಟ್\u200c', 'ko': '입력', 'lo': 'ປ້ອນເຂົ້າ', 'lt': 'įvesk', 'lv': 'ievade', 'ml': 'ഇന്\u200dപുട്ട്', 'mn': 'оролт', 'mr': 'इंपुट', 'nb': 'inndata|input', 'ne': 'आगत', 'nl': 'invoer', 'nn': 'inndata|input', 'oc': 'picada', 'or': 'ନିବେଶ', 'pa_IN': 'ਇੰਪੁੱਟ', 'pt_BR': 'ler|leia', 'ro': 'input|intrare', 'ru': 'ввод', 'sat': 'आदेर', 'sd': 'اِن پُٽ', 'sid': 'eo', 'si': 'ආදානය', 'sk': 'Vstup', 'sl': 'vnos', 'sq': 'hyrje', 'ta': 'உள்ளீடு', 'te': 'ఇన్పుట్', 'tr': 'girdi', 'uk': 'ввести', 'vi': 'Nhập', 'zh_CN': '输入|input', 'zh_TW': '輸入|input'},
2340'PRINT':{'en_US': 'print', 'af': 'uitdruk', 'am': 'ማተሚያ', 'ar': 'اطبع', 'ast': 'imprentar', 'be': 'друк', 'bn_IN': 'মুদ্রণ', 'br': 'moullañ', 'bs': 'štampaj', 'ca': 'imprimeix', 'ca_valencia': 'imprimeix', 'ckb': 'چاپکردن', 'cy': 'argraffu', 'cs': 'piš', 'de': 'ausgabe', 'dsb': 'piš', 'el': 'τύπωσε|print', 'eo': 'presu|p', 'es': 'imprimir|escribir', 'et': 'kirjuta|prindi', 'eu': 'inprimatu', 'fi': 'tulosta', 'fr': 'écris', 'fy': 'printsje', 'gd': 'clò-bhuail', 'gl': 'imprimir', 'gug': 'imprimir', 'gu': 'છાપો', 'he': 'הדפסה', 'hi': 'छापें', 'hr': 'ispis', 'hsb': 'pisaj', 'hu': 'ki|kiír', 'is': 'prenta', 'ja': '表示|print', 'kab': 'aru', 'ka': 'ბეჭდვა', 'kk': 'баспа', 'km': 'បោះ\u200b\u200bពុម្ព\u200b', 'kn': 'ಮುದ್ರಿಸು', 'ko': '인쇄', 'lo': 'ພີມ', 'lt': 'spausdink|spd|rašyk', 'lv': 'drukāt', 'ml': 'പ്രിന്റ് ചെയ്യുക', 'mn': 'хэвлэх', 'mr': 'प्रिंट', 'my': 'ပရင့်ထုတ်ပါ', 'nb': 'skriv ut|skriv|print', 'ne': 'मुद्रण गर्नुहोस्', 'nl': 'afdrukken', 'nn': 'skriv ut|skriv|print', 'oc': 'imprimir', 'or': 'ମୁଦ୍ରଣ', 'pa_IN': 'ਛਾਪੋ', 'pt_BR': 'escrever|esc|escreva', 'ro': 'print|afișează', 'ru': 'печать', 'sid': 'attami', 'si': 'මුද්\u200dරණය කරන්න', 'sk': 'Tlač', 'sl': 'izpiši', 'sq': 'printo', 'ta': 'அச்சிடு', 'te': 'ముద్రణ', 'tr': 'yazdır', 'uk': 'друк', 'vec': 'stanpa', 'vi': 'In', 'zh_CN': '打印|印出|print', 'zh_TW': '印出|print'},
2341'SLEEP':{'en_US': 'sleep', 'af': 'wag', 'am': 'ማስተኛ', 'ar': 'نَم', 'as': 'নিদ্ৰা', 'ast': 'dormir', 'be': 'чакаць', 'br': 'kousket', 'bs': 'spavanje', 'ca': 'dorm|espera', 'ca_valencia': 'dorm|espera', 'ckb': 'خەوتن', 'cy': 'cysgu', 'cs': 'čekej', 'de': 'warte', 'dsb': 'cakaj', 'el': 'αναμονή|sleep', 'eo': 'dormu', 'es': 'dormir|espera', 'et': 'oota', 'eu': 'loegin', 'fi': 'nuku', 'fr': 'suspendre', 'fy': 'sliepe', 'gl': 'durmir', 'gug': 'ke', 'gu': 'નિદ્રા', 'he': 'לישון', 'hi': 'सुप्त', 'hr': 'spavaj', 'hsb': 'čakaj', 'hu': 'vár|várj', 'is': 'svæfa', 'ja': '待つ|sleep', 'kab': 'seṛǧu', 'kk': 'күту', 'km': 'ដេក', 'kn': 'ಜಡ', 'ko': '대기 모드', 'lo': 'ນອນ', 'lt': 'lauk', 'lv': 'gulēt', 'mn': 'хүлээх', 'mr': 'स्लीप', 'nb': 'sov|pause|sleep', 'nl': 'slaap', 'nn': 'sov|pause|sleep', 'oc': 'arrestar', 'or': 'ସୁପ୍ତ', 'pt_BR': 'esperar|espere', 'ro': 'sleep|adormire', 'ru': 'ждать', 'sid': 'goxi', 'sk': 'čakaj', 'sl': 'miruj', 'sq': 'gjumë', 'te': 'స్లీమ్', 'tr': 'askıya al', 'uk': 'чекай', 'vec': 'sospension', 'zh_CN': '休息|睡眠|sleep', 'zh_TW': '睡眠|休息|sleep'},
2342'GLOBAL':{'en_US': 'global', 'af': 'globaal', 'am': 'አለም አቀፍ', 'ar': 'عمومي', 'as': 'বিশ্বব্যাপী', 'be': 'агульны', 'bn_IN': 'গ্লোবাল', 'br': 'hollek', 'bs': 'opšte', 'ckb': 'جیهانیی', 'cy': 'byd eang', 'cs': 'globální', 'dsb': 'globalny', 'el': 'καθολικό|global', 'eo': 'ĉie', 'et': 'üldine', 'eu': 'globala', 'fi': 'yhteinen', 'fy': 'globaal', 'gu': 'વૈશ્વિક', 'he': 'כללי', 'hi': 'वैश्विक', 'hr': 'opći', 'hsb': 'globalny', 'hu': 'globális|globálisváltozó|globvál', 'is': 'víðvært', 'ja': 'どこからでも見える|グローバル|global', 'kab': 'amatu', 'kk': 'жалпы', 'km': 'សកល\u200b', 'kn': 'ಜಾಗತಿಕ', 'ko': '전역', 'lo': 'ທົ່ວໂລກ', 'lt': 'išorinis', 'lv': 'globāls', 'mn': 'ерөнхий', 'mr': 'ग्लोबल', 'nl': 'globaal', 'or': 'ଜାଗତିକ', 'ru': 'общее', 'sid': 'kalqe', 'sk': 'globálne', 'sl': 'globalno', 'sq': 'globale', 'te': 'గ్లోబల్', 'tr': 'küresel', 'uk': 'загальне', 'zh_CN': '全局|共用|global', 'zh_TW': '全域|共用|global'},
2343'RANDOM':{'en_US': 'random', 'af': 'willekeurig', 'am': 'በነሲብ', 'ar': 'عشوائي', 'as': 'যাদৃচ্ছিক', 'ast': 'aleatoriu', 'be': 'выпадкова', 'bn_IN': 'এলোমেলো', 'br': 'dargouezhek', 'bs': 'slučajno', 'ca': 'aleatori', 'ca_valencia': 'aleatori', 'ckb': 'هەڕەمەکی', 'cy': 'ar hap', 'cs': 'náhodné', 'de': 'zufällig', 'dsb': 'pśipadny', 'el': 'τυχαίο|random', 'eo': 'harzarda', 'es': 'aleatorio', 'et': 'juhuslik', 'eu': 'ausazkoa', 'fi': 'satunnainen', 'fr': 'hasard', 'fy': 'willekeurich', 'gl': 'aleatorio', 'gug': "Po'a Oimeraẽa (azar)", 'gu': 'અવ્યવસ્થિત', 'he': 'אקראי', 'hi': 'बेतरतीब', 'hr': 'nasumično', 'hsb': 'připadny', 'hu': 'véletlen|véletlenszám|vszám|kiválaszt', 'is': 'slembið', 'ja': 'でたらめな数|乱数|ランダム|random', 'kab': 'agacuṛan', 'kk': 'кездейсоқ', 'km': 'ចៃដន្យ', 'kn': 'ಯಾವುದಾದರು', 'ko': '임의', 'lo': 'ສຸ່ມ', 'lt': 'bet.koks', 'lv': 'nejaušs', 'mn': 'санамсаргүй', 'mr': 'रँडम', 'nb': 'tilfeldig|random', 'nl': 'random|willekeurig', 'nn': 'tilfeldig|random', 'oc': 'aleatòri', 'or': 'ଅନିୟମିତ', 'pt_BR': 'aleatório|sorteieNúmero|sortNum', 'ro': 'random|aleator', 'ru': 'случайно', 'sid': 'hedeweelcho', 'sk': 'náhodné', 'sl': 'naključno', 'sq': 'rastësore', 'te': 'యాదృశ్చిక', 'tr': 'rastgele', 'uk': 'випадкове', 'vec': 'cazuałe', 'zh_CN': '随机|random', 'zh_TW': '隨機|random'},
2344'INT':{'en_US': 'int', 'af': 'heel', 'ar': 'عدد_صحيح', 'be': 'цэлае', 'br': 'kevan', 'bs': 'cijeli broj', 'cs': 'celé', 'de': 'ganz', 'dgo': 'INT', 'dsb': 'ceły', 'el': 'ακέραιο|int', 'eo': 'entjero|ent', 'et': 'täisarv', 'eu': 'osoa', 'fi': 'kokonaisl', 'fr': 'ent', 'fy': 'ynt', 'he': 'שלם', 'hsb': 'cyły', 'hu': 'egészszám|egész', 'is': 'heilt', 'ja': '切り捨て|整数|整数に|int', 'kab': 'ilaw', 'kk': 'бүтін', 'kok': 'INT', 'ko': '정수', 'lt': 'sveikoji.dalis|svdl', 'lv': 'vesels', 'mn': 'бүтэн', 'mr': 'इंट', 'nb': 'heltall|int', 'nn': 'heiltal', 'or': 'ଗଣନ ସଂଖ୍ୟା', 'ru': 'целое', 'sa_IN': 'INT', 'sat': 'INT', 'sid': 'di"ikkanno', 'sk': 'celé', 'sl': 'celo', 'tr': 'tamsayı', 'uk': 'ціле', 'zh_CN': '整数|int', 'zh_TW': '整數|int'},
2345'FLOAT':{'en_US': 'float', 'af': 'komma', 'am': 'ማንሳፈፊያ', 'ar': 'عدد عشري', 'ast': 'flotante', 'be': 'дробавае', 'bn_IN': 'ভাসমান', 'br': 'tonnañ', 'bs': 'realni', 'cy': 'arnofio', 'cs': 'desetinné', 'de': 'dezimal', 'dsb': 'decimalny', 'el': 'κινητήυποδιαστολή|float', 'eo': 'reelo', 'et': 'ujukomaarv|ujukoma', 'eu': 'dezimala', 'fi': 'desimaalil', 'fr': 'virgule', 'fy': 'driuwe', 'gl': 'flotante', 'gug': 'vevúi', 'gu': 'અપૂર્ણાંક', 'he': 'שבר', 'hi': 'प्लावित करें', 'hr': 'pomični', 'hsb': 'decimalny', 'hu': 'törtszám|tört', 'is': 'fleyti', 'ja': '小数|小数に|float', 'kab': 'ilaw', 'ka': 'მოლივლივე', 'kk': 'бөлшек', 'km': 'អណ្ដែត', 'kn': 'ತೇಲು', 'ko': '둥둥 뜨기', 'lt': 'trupmeninis.skaičius|trsk', 'lv': 'reāls', 'ml': 'ഫ്\u200dളോട്ട്', 'mn': 'аравтын', 'mr': 'फ्लोट', 'my': 'ပေါလောပေါ်သည်', 'nb': 'flyttall|float', 'ne': 'फ्लोट', 'nl': 'komma', 'nn': 'flyttal|desimaltal|float', 'oc': 'virgula', 'or': 'ଚଳମାନ', 'pa_IN': 'ਤੈਰਦਾ', 'pt_BR': 'real', 'ru': 'дробное', 'sat': 'चापे.', 'sid': 'womi', 'si': 'පාවීම', 'sk': 'Plávať', 'sl': 'plavajoče', 'sq': 'presje e lëvizshme', 'te': 'ఫ్లోట్', 'tr': 'kayan', 'uk': 'дробове', 'vec': 'mobiłidà', 'vi': 'Nổi', 'zh_CN': '浮点|小数|float', 'zh_TW': '浮點|float'},
2346'STR':{'en_US': 'str', 'ar': 'سلسلة', 'be': 'радок', 'br': 'hedad', 'ckb': '\u202bstr', 'cs': 'řetězec', 'de': 'zeichen', 'dsb': 'znamuška', 'el': 'συμβολοσειρά|str', 'eo': 'ĉeno', 'et': 'sõne|string', 'fi': 'mjono', 'fr': 'car', 'he': 'מחרוזת', 'hr': 'niz', 'hsb': 'znarjećazk', 'hu': 'karakterlánc|lánc', 'ja': '文字列|文字列に|str', 'kab': 'asekkil', 'kk': 'жол', 'lt': 'teksto.eilutė|te', 'lv': 'virkne', 'mn': 'тэмдэгт', 'mr': 'स्ट्रिंग', 'nl': 'teken', 'oc': 'car', 'ru': 'строка', 'sk': 'reťazec', 'sl': 'niz', 'tr': 'dizi', 'uk': 'рядок', 'vec': 'stringa', 'zh_CN': '字串|字符串|str', 'zh_TW': '字串|str'},
2347'SQRT':{'en_US': 'sqrt', 'af': 'vierkantswortel', 'am': 'ስኴር ሩት', 'ar': 'جذر تربيعي', 'ast': 'raiz', 'be': 'корань', 'br': 'daouvonad', 'bs': 'korijen', 'ca': 'arrel', 'ca_valencia': 'arrel', 'ckb': 'ڕەگ', 'cs': 'odmocnina', 'de': 'wurzel', 'dgo': 'SQRT', 'dsb': 'kórjeń', 'el': 'τετραγωνικήρίζα|sqrt', 'eo': 'kvrad', 'es': 'raiz.cuadrada|raiz|sqrt', 'et': 'ruutjuur|rtjr|√', 'fi': 'neliöjuuri', 'fr': 'racine', 'fy': 'sqrt|fjouwerkantswoartel|fw', 'gl': 'raizc', 'gug': 'raiz.cuadrada|raiz|sqrt', 'he': 'שורש', 'hr': 'korijen', 'hsb': 'korjeń', 'hu': 'gyök', 'is': 'kvaðratr', 'ja': '平方根|sqrt', 'kab': 'aẓar', 'kok': 'SQRT', 'lt': 'šaknis|sqrt', 'lv': 'kvadrātsakne', 'mn': 'язгуур', 'mr': 'स्केअररूट', 'nb': 'kvrot|sqrt', 'nl': 'sqrt|vierkantswortel|vw', 'nn': 'kvrot|rot|sqrt', 'pt_BR': 'raiz|raizQ', 'sa_IN': 'SQRT', 'sat': 'SQRT', 'sk': 'odmocnina', 'sl': 'koren', 'sq': 'rrënja katrore', 'tr': 'karekök', 'uk': 'корінь', 'vec': 'raizacuadrada', 'zh_CN': '平方根|方根|开方|sqrt', 'zh_TW': '開根|方根|sqrt'},
2348'LOG10':{'en_US': 'log10', 'am': 'ሎግ10', 'ar': 'لوغاريثم عشري', 'ckb': '\u202blog10', 'he': 'לוגריתם_10', 'kab': 'alug10', 'ug': 'لوگارىفما|log10', 'zh_CN': '对数|log10', 'zh_TW': '對數|log10'},
2349'SIN':{'en_US': 'sin', 'am': 'ሳይን', 'ar': 'جا', 'ast': 'sen', 'ckb': 'ساین', 'dgo': 'SIN', 'el': 'ημίτονο|sin', 'es': 'sen', 'fi': 'sini', 'gl': 'sen', 'gug': 'sen', 'he': 'סינוס', 'is': 'sín', 'kab': 'asin', 'kok': 'SIN', 'mr': 'साइन', 'pt_BR': 'sen', 'sa_IN': 'SIN', 'sat': 'SIN', 'sid': 'sayine', 'vec': 'seno', 'zh_CN': '正弦|sin', 'zh_TW': '正弦|sin'},
2350'COS':{'en_US': 'cos', 'am': 'ኮስ', 'ar': 'جتا', 'br': 'kos', 'ckb': 'کۆس', 'dgo': 'COS', 'el': 'συνημίτονο|cos', 'eo': 'kos', 'fi': 'kosini', 'he': 'קוסינוס', 'is': 'kós', 'kab': 'akus', 'kok': 'COS', 'mr': 'कॉस', 'sa_IN': 'COS', 'sat': 'COS', 'sid': 'koose', 'tr': 'kos', 'vec': 'cozeno', 'zh_CN': '余弦|cos', 'zh_TW': '餘弦|cos'},
2351'ROUND':{'en_US': 'round', 'af': 'rondaf', 'am': 'ክብ', 'ar': 'دائري', 'as': 'গোলাকাৰ', 'ast': 'redondu', 'be': 'круглы', 'bn_IN': 'রাউন্ড', 'br': 'ront', 'bs': 'okruglo', 'ca': 'arrodoneix|arrod', 'ca_valencia': 'arredoneix|arred', 'ckb': 'خولاوە', 'cy': 'crwn', 'cs': 'oblé', 'de': 'runde', 'dsb': 'narownaj', 'el': 'στρογγυλοποίηση|round', 'eo': 'ronda', 'es': 'redondear', 'et': 'ümar', 'eu': 'biribildua', 'fi': 'pyöreä', 'fr': 'arrondi', 'fy': 'ôfrûne', 'gd': 'cruinn', 'gl': 'arredondar', 'gug': "emoapu'a", 'gu': 'રાઉન્ડ', 'he': 'עגול', 'hi': 'गोल', 'hr': 'zaokruži', 'hsb': 'nakruž', 'hu': 'kerek', 'is': 'rúnnað', 'ja': '四捨五入|round', 'kab': 'yattwaẓ', 'ka': 'მრგვალი', 'kk': 'домалақтау', 'km': 'មូល', 'kn': 'ದುಂಡಾದ', 'ko': '반올림', 'lo': 'ຮອບ', 'lt': 'apvalink', 'lv': 'apaļš', 'ml': 'ഉരുണ്ട', 'mn': 'бүхэл', 'mr': 'गोलाकार', 'my': 'ပတ်လည်', 'nb': 'avrund|round', 'ne': 'गोलाकार', 'nl': 'rondaf', 'nn': 'avrund|round', 'oc': 'arredondit', 'or': 'ଗୋଲାକାର', 'pa_IN': 'ਗੋਲ', 'pt_BR': 'arred|arredonde', 'ro': 'round|rotund', 'ru': 'скруглить', 'sid': 'doyiissi', 'si': 'වටකුරු', 'sk': 'zaoblené', 'sl': 'zaokroži', 'sq': 'rrumbullak', 'ta': 'வட்டம்', 'te': 'రౌండ్', 'tr': 'yuvarla', 'ug': 'يۇمۇلاق', 'uk': 'закруглити', 'vec': 'stonda', 'vi': 'Làm tròn', 'zh_CN': '四舍五入|舍入|round', 'zh_TW': '四捨五入|round'},
2352'ABS':{'en_US': 'abs', 'am': 'ፍጹም', 'ar': 'مطلق', 'bn_IN': 'ট্যাব', 'br': 'dizave', 'ckb': '\u202babs', 'cs': 'absolutní', 'de': 'betrag', 'dsb': 'absolutny|abs', 'el': 'απόλυτο', 'et': 'absoluutväärtus|abs', 'fi': 'itseisarvo', 'he': 'ערך מוחלט', 'hi': 'टैब्स', 'hr': 'aps', 'hsb': 'absolutny|abs', 'hu': 'abszolútérték|absz?', 'is': 'algilt', 'ja': '絶対値|abs', 'kab': 'amagdez', 'ka': 'ტაბულაციები', 'kn': 'ಟ್ಯಾಬ್\u200cಗಳು', 'ko': '탭', 'lt': 'ilgis|abs|modulis', 'lv': 'modulis', 'mr': 'ॲब्स', 'my': 'အကွက်ခုန်များ', 'ne': 'ट्याबहरू', 'pa_IN': 'ਟੈਬ', 'sid': 'abse', 'si': 'පටිති', 'te': 'టాబ్ లు', 'tr': 'mutlak', 'vi': 'Tab', 'zh_CN': '绝对值|abs', 'zh_TW': '絕對值|abs'},
2353'COUNT':{'en_US': 'count', 'af': 'telling', 'am': 'መቁጠሪያ', 'ar': 'عُدّ', 'as': 'গণনা', 'ast': 'contéu', 'br': 'Niver', 'brx': 'साननाय', 'bs': 'mjesta', 'ca': 'compte', 'ca_valencia': 'compte', 'ckb': 'ژماردن', 'cy': 'cyfrif', 'cs': 'počet', 'de': 'zähle', 'dgo': 'गिनतरी', 'dsb': 'licyś', 'dz': 'གྱངས་ཁ་རྐྱབས།', 'el': 'πλήθος|count', 'eo': 'nombru', 'es': 'conteo', 'et': 'loenda', 'eu': 'zenbaketa', 'fi': 'lukumäärä', 'fr': 'compte', 'fy': 'tal', 'gd': 'cunntas', 'gl': 'decimais', 'gug': 'econta', 'gu': 'ગણતરી', 'he': 'ספירה', 'hi': 'गिनती', 'hr': 'brojanje', 'hsb': 'ličić', 'hu': 'darab|db|elemszám', 'is': 'fjöldi', 'ja': '文字数|持っている数|count', 'kab': 'Amḍan', 'ka': 'თვლა', 'kk': 'саны', 'km': 'ចំនួន', 'kmr_Latn': 'Bihijmêre', 'kn': 'ಎಣಿಕೆ', 'kok': 'गणन', 'ko': '수', 'ks': 'شمار', 'lo': 'ນັບ', 'lt': 'kiek', 'lv': 'skaits', 'mai': 'गिनती', 'mk': 'Број', 'ml': 'എണ്ണം', 'mni': 'মশিং থীয়ু', 'mn': 'тоо хэмжээ', 'mr': 'काउंट', 'my': 'ရေတွက်ပါ', 'nb': 'tell|count', 'ne': 'गणना', 'nl': 'aantal', 'nn': 'tel|plassar|count', 'oc': 'nb_decimalas', 'om': "baay'ina", 'or': 'ଗଣନା', 'pa_IN': 'ਗਿਣਤੀ', 'pt_BR': 'contagem', 'ro': 'count|contor', 'ru': 'количество', 'rw': 'kubara', 'sa_IN': 'गणना', 'sat': 'लेखाक्', 'sid': 'kiiri', 'si': 'ගණන් කරන්න', 'sk': 'počet', 'sl': 'preštej', 'sq': 'numëro', 'sw_TZ': 'hesabu', 'ta': 'எண்ணிக்கை', 'te': 'లెక్క', 'tg': 'Шумора', 'th': 'นับ', 'tr': 'sayım', 'uk': 'кількість', 'uz': 'Miqdor', 'vec': 'contejo', 'vi': 'đếm', 'zh_CN': '计数|count', 'zh_TW': '計數|count'},
2354'SET':{'en_US': 'set', 'af': 'versameling', 'am': 'ማሰናጃ', 'ar': 'مجموعة', 'ast': 'establecer', 'bn_IN': 'সেট', 'br': 'arventenn', 'bs': 'postavi', 'ca': 'conjunt', 'ca_valencia': 'conjunt', 'ckb': 'سێت', 'cs': 'množina', 'de': 'menge', 'dgo': 'सैट्ट करो', 'dsb': 'młogosć', 'el': 'σύνολο|set', 'eo': 'aro', 'es': 'conjunto', 'et': 'hulk', 'eu': 'ezarri', 'fi': 'joukko', 'fr': 'fixe', 'fy': 'set|ynstelle', 'gl': 'estabelecer', 'gug': 'aty', 'gu': 'સુયોજન', 'he': 'קבוצה', 'hr': 'skup', 'hsb': 'mnohosć', 'hu': 'halmaz', 'is': 'setja', 'ja': '同じ値を一つに|集合に|集合|set', 'kab': 'usbiḍ', 'kk': 'орнату', 'km': 'កំណត់', 'kok': 'संचSonch', 'ko': '설정', 'lo': 'ຕັ້ງຄ່າ', 'lt': 'parink', 'lv': 'iestatīt', 'mn': 'олонлиг', 'mr': 'सेट', 'nb': 'sett|set', 'nl': 'set|instellen', 'or': 'ସେଟ', 'pt_BR': 'conjunto', 'ru': 'установить', 'sa_IN': 'सॆट', 'sat': 'साजाव', 'sd': 'سيٽ', 'sid': 'qineessi', 'sk': 'množina', 'sl': 'množica', 'sq': 'vendos', 'tr': 'ayarla', 'uk': 'встановити', 'zh_CN': '集合|set', 'zh_TW': '集合|set'},
2355'RANGE':{'en_US': 'range', 'af': 'omvang', 'am': 'መጠን', 'ar': 'النطاق', 'as': 'বিস্তাৰ', 'ast': 'estaya', 'bn_IN': 'পরিসর', 'bn': 'পরিসর', 'br': 'lijorenn', 'brx': 'सारि', 'bs': 'opseg', 'ca': 'interval', 'ca_valencia': 'interval', 'ckb': 'بوار', 'cy': 'ystod', 'cs': 'rozsah', 'de': 'folge', 'dgo': 'फलाऽ', 'dsb': 'slěd', 'dz': 'ཁྱབ་ཚད།', 'el': 'περιοχή|range', 'eo': 'amplekso', 'es': 'intervalo', 'et': 'vahemik', 'eu': 'barrutia', 'fa': 'محدوده', 'fi': 'alue', 'fr': 'plage', 'fy': 'berik', 'gd': 'rainse', 'gl': 'intervalo', 'gug': 'intervalo', 'gu': 'વિસ્તાર', 'he': 'טווח', 'hi': 'दायरा', 'hr': 'raspon', 'hsb': 'slěd', 'hu': 'sor', 'is': 'svið', 'ja': '範囲|range', 'kab': 'azilal', 'ka': 'ფორთოხლისფერი', 'kk': 'ауқым', 'km': 'ជួរ', 'kmr_Latn': 'Navber', 'kn': 'ವ್ಯಾಪ್ತಿ', 'kok': 'व्याप्ती', 'ko': '범위', 'ks': 'حد', 'lo': 'ຂອບເຂດ', 'lt': 'sritis', 'lv': 'diapazons', 'mai': 'परिसर', 'mk': 'Опсег', 'ml': 'പരന്പര', 'mni': 'রেন্জ', 'mn': 'муж', 'mr': 'रेंज', 'my': 'ကန့်သတ်နယ်ပယ်', 'nb': 'område|range', 'ne': 'दायरा', 'nl': 'bereik', 'nn': 'område|range', 'oc': 'plaja', 'om': 'hangii', 'or': 'ପରିସର', 'pa_IN': 'ਰੇਜ਼', 'pt_BR': 'intervalo', 'ro': 'range|interval', 'ru': 'диапазон', 'rw': 'igice', 'sa_IN': 'प्रसरः', 'sat': 'पासनाव', 'sid': 'hakkigeeshsha', 'si': 'පරාසය', 'sk': 'oblasť', 'sl': 'obseg', 'sq': 'interval', 'sw_TZ': 'masafa', 'ta': 'வரம்பு', 'te': 'విస్తృతి', 'tg': 'Қитъа', 'th': 'ช่วง', 'tr': 'aralık', 'tt': 'колач', 'uk': 'діапазон', 'uz': 'oraliq', 'vec': 'travało', 'vi': 'phạm vi', 'zh_CN': '范围|range', 'zh_TW': '範圍|range'},
2356'LIST':{'en_US': 'list', 'af': 'lys', 'am': 'ዝርዝር', 'ar': 'قائمة', 'ast': 'llista', 'be': 'спіс', 'bn_IN': 'তালিকা', 'br': 'roll', 'bs': 'lista', 'ca': 'llista', 'ca_valencia': 'llista', 'ckb': 'لیستە', 'cy': 'rhestr', 'cs': 'seznam', 'de': 'liste', 'dgo': 'सूची', 'dsb': 'lisćina', 'el': 'κατάλογος|list', 'eo': 'listo', 'es': 'lista', 'et': 'loend', 'eu': 'zerrenda', 'fi': 'lista', 'fr': 'liste', 'gl': 'lista', 'gug': 'lista', 'gu': 'યાદી', 'he': 'רשימה', 'hi': 'सूची', 'hr': 'popis', 'hsb': 'lisćina', 'hu': 'lista', 'is': 'listi', 'ja': 'リスト|list', 'kab': 'tabdart', 'ka': 'სია', 'kk': 'тізім', 'km': 'បញ្ជី', 'kn': 'ಪಟ್ಟಿ', 'ko': '목록', 'lo': 'ລາຍການ', 'lt': 'gauk.sąrašą|sąrašas|gksr', 'lv': 'saraksts', 'mn': 'жагсаалт', 'mr': 'लिस्ट', 'my': 'စာရင်း', 'nb': 'liste|list', 'ne': 'सूची', 'nl': 'lijst', 'nn': 'liste|list', 'oc': 'lista', 'or': 'ତାଲିକା', 'pt_BR': 'lista', 'ro': 'list|listă', 'ru': 'список', 'sat': 'लिसटी', 'sid': 'dirto', 'si': 'ලැයිස්තුව', 'sk': 'Zoznam', 'sl': 'izpišiseznam', 'sq': 'lista', 'ta': 'பட்டியல்', 'te': 'జాబిత', 'tr': 'liste', 'uk': 'список', 'zh_CN': '列表|list', 'zh_TW': '清單|列表|list'},
2357'TUPLE':{'en_US': 'tuple', 'af': 'tupel', 'am': 'ቱፕል', 'ast': 'tupla', 'be': 'картэж', 'br': 'kemalenn', 'bs': 'pobrojane', 'ca': 'tupla', 'ca_valencia': 'tupla', 'cs': 'ntice', 'de': 'tupel', 'dsb': 'tupel', 'el': 'πλειάδα|tuple', 'eo': 'opo', 'es': 'tupla', 'et': 'ennik|korteež', 'eu': 'tuploa', 'fi': 'pari', 'gl': 'tupla', 'gug': 'tupla', 'gu': 'ટપલ', 'he': 'סדרהסדורה', 'hr': 'torka', 'hsb': 'tupel', 'hu': 'fix', 'is': 'tuple-röð', 'ja': '変更できないリスト|タプル|tuple', 'kk': 'кортеж', 'kn': 'ಟಪಲ್', 'ko': '튜플', 'lt': 'kortežas', 'lv': 'kortežs', 'mr': 'टपल', 'nb': 'tuppel', 'nl': 'tuple|tupel', 'or': 'ଟ୍ୟୁପଲ', 'pt_BR': 'tupla', 'ro': 'tuple|fix', 'ru': 'кортеж', 'sid': 'tupile', 'sk': 'ntica', 'sl': 'par', 'tr': 'tüp', 'uk': 'кортеж', 'vec': 'tupla', 'zh_CN': '元组|tuple', 'zh_TW': '元組|tuple'},
2358'SORTED':{'en_US': 'sorted', 'af': 'gesorteer', 'am': 'ተለይቷል', 'ar': 'مُفرَز', 'as': 'বৰ্গীকৰণ কৰি থোৱা', 'ast': 'ordenao', 'bn_IN': 'বিন্যস্ত', 'bn': 'বিন্যস্ত', 'bo': 'range_lookup', 'br': 'rummet', 'brx': 'थाखो खालाखानाय', 'bs': 'sortirano', 'ca': 'ordenat', 'ca_valencia': 'ordenat', 'ckb': 'رێکخراو', 'cy': 'trefnwyd', 'cs': 'seřazeno', 'de': 'sortiert', 'dgo': 'छांटेआ', 'dsb': 'sortěrowany', 'dz': 'དབྱེ་སེལ་འབད་ཡོདཔ།', 'el': 'ταξινομημένα|sorted', 'eo': 'ordigita', 'es': 'ordenado', 'et': 'sorditud', 'eu': 'ordenatua', 'fa': 'مرتب\u200cشده', 'fi': 'lajiteltu', 'fr': 'trié', 'fy': 'sortearre', 'gd': 'air a sheòrsachadh', 'gl': 'ordenado', 'gug': "ojemohenda va'ekue", 'gu': 'ગોઠવાયેલ', 'he': 'עםמיון', 'hi': 'छांटा हुआ', 'hr': 'razvrstano', 'hsb': 'sortěrowany', 'hu': 'rendez', 'is': 'raðað', 'ja': '並び替える|ソート|sorted', 'kab': 'trié', 'kk': 'сұрыпталған', 'km': 'បាន\u200bតម្រៀប', 'kmr_Latn': 'Rêzkirî', 'kn': 'ವಿಂಗಡಿಸಲಾದ', 'kok': 'वर्गीकृत', 'ko': '정렬', 'ks': 'ساٹ كرمُت', 'lo': 'ຈັດລຽງ', 'lt': 'rikiuok', 'lv': 'sakārtots', 'mai': 'सोर्ट कएल गेल', 'mk': 'Подредување', 'ml': 'വകതിരിച്ച', 'mni': 'মথং-মনাও শেম্লবা', 'mn': 'эрэмбэлэгдсэн', 'mr': 'सॉर्टेड', 'my': 'စနစ်တကျစီထားသည်', 'nb': 'sortert|sorted', 'ne': 'क्रमबद्व गरिएको', 'nl': 'gesorteerd', 'nn': 'sortert|sorted', 'nr': 'hleliwe', 'nso': 'arogantšwe', 'oc': 'triat', 'om': "foo'amaa", 'or': 'ସଜାହୋଇଥିବା', 'pa_IN': 'ਲੜੀਬੱਧ', 'pt_BR': 'ordenado', 'ro': 'sorted|sortat', 'ru': 'отсортировано', 'rw': 'bishunguwe', 'sa_IN': 'क्रमितम्', 'sat': 'साला आकान', 'sd': 'वर्गीकृत केलेले', 'sid': 'diramino', 'si': 'සුබෙදන ලදි', 'sk': 'zoradené', 'sl': 'razvrščeno', 'sq': 'klasifikuar', 'ss': 'kuhlelekile', 'st': 'hlophilwe', 'sw_TZ': 'i-liyopangwa', 'ta': 'அடுக்கப்பட்டது', 'te': 'క్రమబద్దీకరించబడినది', 'tg': 'низомнокшуда', 'th': 'เรียง', 'tn': 'bakantswe', 'tr': 'sıralanmış', 'ts': 'xaxametiwile', 'uk': 'сортований', 'uz': 'saralangan', 'vec': 'ordenà', 've': 'yo dzudzanywa', 'vi': 'đã sắp xếp', 'xh': 'hlela-hlela', 'zh_CN': '排序|sorted', 'zh_TW': '排序|sorted', 'zu': 'ihleliwe'},
2359'RESUB':{'en_US': 'sub', 'af': 'voetskrif', 'am': 'ንዑስ', 'ar': 'استبدل', 'br': 'is', 'cs': 'nahraď', 'de': 'ersetzt', 'dsb': 'wuměń', 'el': 'αντικατάσταση', 'eo': 'anstataŭu|anst', 'et': 'asenda', 'eu': 'azpi', 'fi': 'korvaa', 'fy': 'ûnderline', 'gu': 'ઉપ', 'he': 'שגרה', 'hr': 'zamjena', 'hsb': 'wuměń', 'hu': 'cserél', 'is': 'skipta|útskipta', 'ja': '文字のおきかえ|置換|sub', 'kab': 'anaddaw', 'kn': 'ಉಪ', 'lo': 'ຍ່ອຍ', 'lt': 'keisk', 'lv': 'aizvietot', 'mr': 'सब', 'nb': 'bytt|bytt ut|sub', 'nl': 'onderlijn', 'nn': 'byt|byt ut|sub', 'or': 'ଉପ', 'pt_BR': 'subst', 'sid': 'cinaancho', 'sk': 'nahraď', 'sl': 'zam', 'sq': 'nën', 'tr': 'alt', 'uk': 'зам', 'zh_CN': '替换|sub', 'zh_TW': '替換|sub'},
2360'RESEARCH':{'en_US': 'search', 'af': 'soek', 'am': 'መፈለጊያ', 'ar': 'ابحث', 'as': 'সন্ধান কৰক', 'ast': 'guetar', 'be': 'знайсці', 'bn_IN': 'অনুসন্ধান', 'br': 'klask', 'bs': 'traži', 'ca': 'cerca', 'ca_valencia': 'busca', 'ckb': 'گەڕان', 'cy': 'chwilio', 'cs': 'hledej', 'de': 'suche', 'dsb': 'pytaj', 'el': 'αναζήτηση|search', 'eo': 'serĉu', 'es': 'buscar', 'et': 'otsi', 'eu': 'bilatu', 'fi': 'etsi', 'fr': 'recherche', 'fy': 'sykje', 'gl': 'buscar', 'gug': 'heka', 'gu': 'શોધો', 'he': 'חיפוש', 'hi': 'खोजें', 'hr': 'pretraživanje', 'hsb': 'pytaj', 'hu': 'keres', 'is': 'leita', 'ja': '探す|みつける|検索|search', 'kab': 'nadi', 'kk': 'іздеу', 'km': 'ស្វែងរក\u200b', 'kn': 'ಹುಡುಕು', 'ko': '검색', 'lo': 'ຄົ້ນຫາ', 'lt': 'ieškok', 'lv': 'meklēt', 'ml': 'തെരയുക', 'mn': 'хайх', 'mr': 'शोधा', 'my': 'ရှာဖွေပါ', 'nb': 'søk|finn|search', 'ne': 'खोज गर्नुहोस्', 'nl': 'zoeken', 'nn': 'søk|finn|search', 'oc': 'recercar', 'or': 'ଖୋଜନ୍ତୁ', 'pa_IN': 'ਲੱਭੋ', 'pt_BR': 'pesquisa', 'ro': 'search|caută', 'ru': 'найти', 'sid': 'hasi', 'sk': 'Hľadať', 'sl': 'išči', 'sq': 'kërko', 'ta': 'தேடு', 'te': 'వెతుకు', 'tr': 'ara', 'uk': 'знайти', 'vec': 'reserca', 'vi': 'Tìm', 'zh_CN': '查找|搜索|search', 'zh_TW': '搜尋|search'},
2361'REFINDALL':{'en_US': 'findall', 'af': 'vind alles', 'am': 'ሁሉንም መፈለጊያ', 'ar': 'اعثر_على_كل', 'ast': 'alcontrartoo', 'br': 'kavout an holl', 'bs': 'nadjisve', 'ca': 'cerca.tot|troba.tot', 'ca_valencia': 'busca.tot|troba.tot', 'cs': 'najdivše', 'de': 'findealle', 'dsb': 'namakajwše', 'el': 'εύρεσηόλων|findall', 'eo': 'serĉu_ĉion|ĉionserĉu', 'es': 'buscar.todo|encontrar.todo|bt', 'et': 'leia_kõik', 'eu': 'bilatudenak', 'fi': 'etsikaikki', 'fr': 'touttrouver', 'fy': 'sykjealles', 'gl': 'atopartodo', 'gug': 'hekaopavave', 'gu': 'બધુ શોધો', 'he': 'חיפושהכול', 'hr': 'pronađi sve', 'hsb': 'namakajwšě', 'hu': 'talál', 'is': 'finnaallt', 'ja': '見つかったものを全部ならべる|findall', 'kab': 'afakk', 'kk': 'барлығын_табу', 'kn': 'ಎಲ್ಲಾಹುಡುಕು', 'ko': '모두 찾기', 'lo': 'ຄົ້ນຫາທັງໝົດ', 'lt': 'rask.viską', 'lv': 'atrast_visu', 'mn': 'бүгдийг_ол', 'mr': 'सर्व शोधा', 'nb': 'finnalle|findall', 'nl': 'vindalles', 'nn': 'finnalle|findall', 'oc': 'trobartot', 'or': 'ସମସ୍ତଙ୍କୁ ଖୋଜନ୍ତୁ', 'pt_BR': 'localizaTudo', 'ro': 'findall|cautătoate', 'ru': 'найти_всё', 'sid': 'baalahasi', 'sk': 'nájsťvšetko|nv', 'sl': 'najdivse', 'sq': 'gjejitëgjitha', 'tr': 'hepsinibul', 'uk': 'знайти_все', 'vec': 'catatuto', 'zh_CN': '查找全部|全部查找|findall', 'zh_TW': '找全部|全找|findall'},
2362'MIN':{'en_US': 'min', 'am': 'አነስተኛ', 'ar': 'الأدنى', 'be': 'мін', 'bn_IN': 'সর্বনিম্ন', 'br': 'izek', 'ca': 'mín|min', 'ca_valencia': 'mín|min', 'ckb': 'نزمترین', 'cy': 'mun', 'dgo': 'घट्टोघट्ट', 'el': 'ελάχιστο|min', 'fi': 'pienin', 'gd': 'as lugha', 'gu': 'ન્યૂનત્તમ', 'he': 'מזערי', 'is': 'lágm', 'ja': 'いちばん小さな数|最小値|最小|min', 'kab': 'adday', 'kk': 'мин', 'km': 'នាទី', 'kn': 'ಕನಿಷ್ಟ', 'kok': 'किमान (~c)Konixtt (~c)', 'lo': 'ຕ່ຳສຸດ', 'lt': 'min.|minimumas', 'mr': 'मिन', 'or': 'ସର୍ବନିମ୍ନ', 'pt_BR': 'mínimo|mín', 'ru': 'мин', 'sa_IN': 'कम ख्तॆ कम', 'sat': 'कोम उता़र, (~c)', 'sd': 'گهٽِ ۾ گهٽ', 'sid': 'shiima', 'sl': 'najmanj', 'te': 'కనిష్ట', 'uk': 'мін', 'zh_CN': '最小值|最小|min', 'zh_TW': '最小值|最小|min'},
2363'MAX':{'en_US': 'max', 'af': 'maks', 'am': 'ከፍተኛ', 'ar': 'الأقصى', 'be': 'макс', 'bn_IN': 'সর্বোচ্চ', 'br': "uc'hek", 'ca': 'màx|max', 'ca_valencia': 'màx|max', 'ckb': 'بەرزترین', 'cy': 'uchaf', 'dgo': 'बद्धोबद्ध', 'dsb': 'maks', 'el': 'μέγιστο|max', 'eo': 'maks', 'et': 'max|maks', 'fi': 'suurin', 'fy': 'maks', 'gd': 'as motha', 'gl': 'máx', 'gu': 'મહત્તમ', 'he': 'מרבי', 'hr': 'maks', 'hsb': 'maks', 'is': 'hám', 'ja': 'いちばん大きな数|最大値|最大|max', 'kab': 'afellay', 'kk': 'макс', 'km': 'អតិបរមា', 'kn': 'ಗರಿಷ್ಟ', 'kok': 'कमालGarixtt', 'ko': '최대값', 'lo': 'ສູງສຸດ', 'lt': 'maks.|maksimumas', 'lv': 'maks', 'mr': 'मॅक्स', 'nb': 'maks|max', 'nn': 'maks|max', 'or': 'ସର୍ବାଧିକ', 'pt_BR': 'máximo|máx', 'ru': 'макс', 'sa_IN': 'ज़यादॆ खूते ज़यादॆ', 'sat': 'ढेर उता़र,', 'sd': 'وڌِ ۾ وَڌِ', 'sid': 'jawa', 'sl': 'največ', 'sq': 'maks', 'te': 'గరిష్ట', 'tr': 'en çok', 'uk': 'макс', 'zh_CN': '最大值|max', 'zh_TW': '最大值|最大|max'},
2364'PI':{'en_US': 'pi|π', 'am': 'ፓይ|π', 'ar': 'ط|باي|π', 'ckb': '\u202bpi|π', 'el': 'πι|pi|π', 'et': 'pii|π', 'fi': 'pii|π', 'gl': 'pi|n', 'he': 'פאי|פיי', 'ja': '円周率|pi|π', 'kk': 'pi|пи|π', 'ko': '파이|π', 'mn': 'pi|пи|π', 'mr': 'पाय|π', 'ru': 'pi|пи|π', 'sid': 'payi|π', 'uk': 'pi|пі|π', 'zh_CN': '圆周率|pi|π', 'zh_TW': 'pi|π|拍'},
2365'DECIMAL':{'en_US': '.', 'af': ',', 'ast': ',', 'ca': ',', 'ca_valencia': ',', 'cs': ',', 'de': ',', 'dsb': ',', 'eo': ',', 'et': ',', 'fi': ',', 'hsb': ',', 'hu': ',', 'lt': ',', 'mn': ',', 'nb': ',', 'nn': ',', 'sl': ','},
2366'DEG':{'en_US': '°', 'zh_CN': '°|度', 'zh_TW': '°|度'},
2367'HOUR':{'en_US': 'h', 'ar': 'س', 'br': 'e', 'ckb': 'ک', 'et': 't', 'he': 'שע', 'hu': 'ó|h', 'is': 'klst', 'ja': '時間|h', 'kab': 'asrag', 'kk': 'с', 'lt': 'val', 'nb': 't', 'nn': 't|h', 'sl': 'u', 'tr': 'sa.', 'zh_CN': 'h|小时', 'zh_TW': 'h|小時'},
2368'MM':{'en_US': 'mm', 'am': 'ሚ/ሚ', 'ar': 'مم', 'as': 'মি.মি.', 'be': 'мм', 'bn_IN': 'মিমি', 'bn': 'মিমি', 'bo': 'ཧའི་སྨི།', 'ckb': 'ملم', 'dgo': 'मी.मी.', 'dz': 'ཨེམ་ཨེམ་', 'el': 'χιλιοστά|mm', 'fa': 'م.م.', 'he': 'מ"מ|מ״מ', 'hi': 'मिमी', 'ja': 'ミリメートル|mm', 'kab': 'mmitr', 'ka': 'მმ', 'kk': 'мм', 'km': 'ម.ម.', 'kn': 'ಮಿ.ಮಿ', 'kok': 'मिमि', 'ks': 'ملی میٹر', 'mai': 'मिमी', 'mk': 'мм', 'ml': 'മിമി', 'mni': 'মি.মি.', 'mn': 'мм', 'my': 'မီလီမီတာ', 'ne': 'मिलिमिटर', 'nr': 'i-mm', 'or': 'ମିଲିମିଟର', 'ru': 'мм', 'sq': '0 mm', 'ta': 'மி.மீ', 'tg': 'мм', 'th': 'มม.', 'tt': 'мм', 'ug': 'مىللىمېتىر', 'uk': 'мм', 'zh_CN': '毫米|mm', 'zh_TW': '公釐|mm'},
2369'CM':{'en_US': 'cm', 'am': 'ሴ/ሚ', 'ar': 'سم', 'as': 'ছে.মি.', 'be': 'см', 'bn_IN': 'সেমি', 'bn': 'সেমি', 'bo': 'ལིའི་སྨི།', 'ckb': 'سم', 'dgo': 'सैं.मी.', 'dz': 'སི་ཨེམ', 'el': 'εκατοστά|cm', 'fa': 'س.م.', 'fy': 'sm', 'he': 'ס"מ|ס״מ', 'hi': 'सेमी', 'is': 'sm', 'ja': 'センチ|センチメートル|cm', 'ka': 'სმ', 'kk': 'см', 'km': 'ស.ម.', 'kn': 'ಸೆಂ.ಮಿ', 'kok': 'सेंमी', 'ks': 'سینٹی میٹر', 'mai': 'सेमी', 'mk': 'см', 'ml': 'സിമി', 'mni': 'সে.মি.', 'mn': 'см', 'my': 'စင်တီမီတာ', 'ne': 'सेन्टिमिटर', 'nr': 'i-cm', 'om': 'sm', 'or': 'ସେଣ୍ଟିମିଟର', 'ru': 'см', 'st': 'sm', 'sw_TZ': 'sm', 'ta': 'செ.மீ', 'tg': 'см', 'th': 'ซม.', 'tt': 'см', 'ug': 'سانتىمېتىر', 'uk': 'см', 'uz': 'sm', 'zh_CN': '厘米|cm', 'zh_TW': '公分|cm'},
2370'PT':{'en_US': 'pt', 'am': 'ነጥብ', 'ar': 'نقطة', 'be': 'пт', 'bn_IN': 'পয়েন্ট', 'bn': 'পয়েন্ট', 'dz': 'པི་ཊི།', 'el': 'στιγμή|pt', 'fa': 'نقطه', 'he': 'נק|נקודה', 'hi': 'पॉइंट', 'hr': 'tč', 'ja': 'ポイント|pt', 'kab': 'taneqqiṭ', 'ka': 'პტ', 'kk': 'пт', 'kok': 'पॉ', 'ks': 'پی ٹی', 'lt': 'tšk', 'mk': 'точки', 'mn': 'цэг', 'my': 'ပွိုင့်', 'nr': 'i-pt', 'or': 'ପିଟି', 'ru': 'пт', 'sl': 'tč', 'tg': 'пт', 'th': 'พอยต์', 'tr': 'nk', 'tt': 'пт', 'zh_CN': '点|磅|pt', 'zh_TW': '點|pt'},
2371'INCH':{'en_US': 'in|"', 'af': 'dm|"', 'am': 'ኢንች|"', 'ar': 'في|"', 'be': 'цаль|"', 'br': 'meutad|"', 'el': 'ίντσα|in|"', 'eo': 'colo|"', 'es': 'in|pulg|"', 'et': 'tolli|"|″', 'fi': 'tuuma', 'fy': 'tomme|"', 'gd': 'òirlich|"', 'gl': 'pol|"', 'gug': 'in|pulg|"', 'he': "אינץ׳|אינץ'|אינטש", 'hr': 'in|″', 'ja': 'インチ|in|"', 'kab': 'di|"', 'kk': 'дюйм|"', 'lt': 'col|"', 'lv': 'colla|"', 'mn': 'дотор|"', 'nb': 'tommer|"', 'nn': 'tomme|in|"', 'or': 'ଇଞ୍ଚ|"', 'pt_BR': 'pol|"', 'ru': 'дюйм|"', 'sl': 'pal|"', 'sq': 'në|"', 'tr': 'inç|"', 'uk': 'дюйм|"', 'zh_CN': '英寸|in', 'zh_TW': '英吋|in'},
2372'INVISIBLE':{'en_US': 'invisible', 'af': 'onsigbaar', 'am': 'የማይታይ', 'ar': 'مخفي', 'as': 'অদৃশ্য', 'be': 'нябачны', 'bn_IN': 'অদৃশ্য', 'br': 'diwelus', 'bs': 'nevidljivo', 'ckb': 'نەبینراو', 'cy': 'anweledig', 'cs': 'neviditelná', 'de': 'ohne', 'dsb': 'njewidobny', 'el': 'αόρατο|invisible', 'eo': 'nevidebla', 'et': 'nähtamatu', 'eu': 'Ikusezina', 'fi': 'näkymätön', 'fy': 'ûnsichtber', 'gd': 'do-fhaicsinneach', 'gl': 'invisíbel', 'gug': 'nojekuaái', 'gu': 'અદ્ધશ્ય', 'he': 'בלתי נראה', 'hi': 'अदृश्य', 'hr': 'nevidljiv', 'hsb': 'njewidźomny', 'hu': 'láthatatlan', 'is': 'ósýnilegt', 'ja': '見えない|不可視|invisible', 'kab': 'uffir', 'ka': 'უხილავი', 'kk': 'жасырын', 'km': 'មើល\u200bមិន\u200bឃើញ', 'kn': 'ಅದೃಶ್ಯ', 'ko': '숨김', 'lo': 'ບໍ່ເຫັນ', 'lt': 'nematoma', 'lv': 'neredzams', 'ml': 'അദൃശ്യമായ', 'mn': 'гүйгээр', 'mr': 'अदृश्य', 'my': 'မမြင်နိုင်သော', 'nb': 'usynlig|invisible', 'ne': 'अदृश्य', 'nl': 'onzichtbaar', 'nn': 'usynleg|invisible', 'or': 'ଅଦୃଶ୍ଯ', 'pa_IN': 'ਅਦਿੱਖ', 'pt_BR': 'invisível', 'ro': 'invisible|invizibil', 'ru': 'невидимый', 'sid': 'leellannokkiha', 'si': 'අදිසි', 'sk': 'Neviditeľná', 'sl': 'nevidno', 'sq': 'i padukshëm', 'ta': 'தென்படாத', 'te': 'అగోచరమైన', 'tr': 'görünmez', 'uk': 'невидимий', 'vec': 'invizìbiłe', 'vi': 'Vô hình', 'zh_CN': '看不见|不可见|invisible', 'zh_TW': '看不見|隱形|invisible'},
2373'BLACK':{'en_US': 'black', 'af': 'swart', 'am': 'ጥቁር', 'ar': 'أسود', 'as': 'কলা', 'ast': 'prietu', 'be': 'чорны', 'bn_IN': 'কালো', 'bn': 'কালো', 'br': 'Du', 'bs': 'crna', 'ca': 'negre', 'ca_valencia': 'negre', 'ckb': 'ڕەش', 'cy': 'du', 'cs': 'černé', 'de': 'schwarz', 'dsb': 'carny', 'el': 'μαύρο|black', 'eo': 'nigra', 'es': 'negro', 'et': 'must', 'eu': 'beltza', 'fa': 'سیاه', 'fi': 'musta', 'fr': 'noir', 'fy': 'swart', 'gd': 'dubh', 'gl': 'negro', 'gug': 'hũ', 'gu': 'કાળો', 'he': 'שחור', 'hi': 'काला', 'hr': 'crna', 'hsb': 'čorny', 'hu': 'fekete', 'is': 'svart', 'ja': '黒|black', 'kab': 'amerkan', 'ka': 'შავი', 'kk': 'қара', 'km': 'ខ្មៅ\u200b', 'kmr_Latn': 'reş', 'kn': 'ಕಪ್ಪು', 'ko': '검정', 'lb': 'schwaarz', 'lo': 'ສີດຳ', 'lt': 'juoda', 'lv': 'melns', 'ml': 'കറുത്ത', 'mni': 'অমুবা', 'mn': 'хар', 'mr': 'काळा', 'my': 'အနက်', 'nb': 'svart|black', 'ne': 'कालो', 'nl': 'zwart', 'nn': 'svart|black', 'nr': 'nzima', 'nso': 'ntsho', 'oc': 'negre', 'or': 'କଳା', 'pa_IN': 'ਕਾਲਾ', 'pt_BR': 'preto', 'ro': 'black|negru', 'ru': 'чёрный', 'sa_IN': 'करूहुन', 'sat': 'हेंदे', 'sd': 'ڪارو', 'sid': 'kolishsho', 'si': 'කළු', 'sk': 'čierna', 'sl': 'črna', 'sq': 'e zezë', 'sr_Latn': 'crna', 'sr': 'црна', 'ss': 'mnyama', 'st': 'botsho', 'ta': 'கருப்பு', 'te': 'నలుపు', 'tn': 'bontsho', 'tr': 'siyah', 'ts': 'ntima', 'tt': 'кара', 'ug': 'قارا', 'uk': 'чорний', 've': 'ntswu', 'vi': 'đen', 'xh': 'mnyama', 'zh_CN': '黑|黑色|black', 'zh_TW': '黑|black', 'zu': 'okumnyama'},
2374'SILVER':{'en_US': 'silver', 'af': 'silwer', 'am': 'ብር', 'ar': 'فضي', 'as': 'ৰূপ', 'ast': 'plata', 'be': 'срэбны', 'bn_IN': 'রূপালী', 'br': 'argant', 'bs': 'srebrena', 'ca': 'plata|argent', 'ca_valencia': 'plata|argent', 'ckb': 'زیوی', 'cy': 'arian', 'cs': 'stříbrná', 'de': 'silber', 'dsb': 'slobro', 'el': 'ασημί|silver', 'eo': 'arĝenta', 'es': 'plata|plateado', 'et': 'hõbedane', 'eu': 'zilarra', 'fi': 'hopea', 'fr': 'argent', 'gd': 'airgid', 'gl': 'prata', 'gug': 'plata', 'gu': 'ચાંદી', 'he': 'כסף', 'hr': 'srebrno', 'hsb': 'slěbro', 'hu': 'világosszürke|ezüst', 'is': 'silfur', 'ja': '銀|silver', 'kab': 'aẓref', 'kk': 'күміс', 'km': 'ប្រាក់', 'kn': 'ಬೆಳ್ಳಿ', 'ko': '은색', 'lo': 'ສີນ້ຳເງິນ', 'lt': 'sidabrinė', 'lv': 'sudraba', 'mn': 'мөнгөлөг', 'mr': 'चंदेरी', 'nb': 'sølv|silver', 'nl': 'zilver', 'nn': 'sølv|silver', 'or': 'ସିଲଭର', 'pt_BR': 'prata', 'ro': 'silver|argintiu', 'ru': 'серебряный', 'sid': 'siwiila', 'sk': 'strieborná', 'sl': 'srebrna', 'sq': 'e argjendtë', 'sr_Latn': 'srebrna', 'sr': 'сребрна', 'ta': 'சில்வர்', 'te': 'సిల్వర్', 'tr': 'gümüş', 'uk': 'срібний', 'zh_CN': '银|银色|silver', 'zh_TW': '銀灰|銀|silver'},
2375'GRAY':{'en_US': 'gray|grey', 'af': 'grys', 'am': 'ግራጫ|ግራጫ', 'ar': 'رمادي|رصاصي', 'ast': 'buxu', 'be': 'шэры', 'br': 'loued|grey', 'bs': 'siva|siva', 'ca': 'gris', 'ca_valencia': 'gris', 'ckb': 'خۆڵەمێشی', 'cs': 'šedá', 'de': 'grau', 'dsb': 'šery', 'el': 'γκρίζο|gray|grey', 'eo': 'griza', 'es': 'gris', 'et': 'hall', 'eu': 'grisa', 'fi': 'harmaa', 'fr': 'gris|gris', 'fy': 'griis', 'gl': 'gris', 'gug': 'hũndy', 'he': 'אפור', 'hr': 'sivo|sivo', 'hsb': 'šěry', 'hu': 'szürke', 'is': 'grátt', 'ja': '灰色|gray', 'kab': 'amliɣdi|amliɣdi', 'kk': 'сұр', 'km': 'ប្រផះ|grey', 'kn': 'ಬೂದು|ಬೂದು', 'ko': '회색|회색', 'lo': 'gray|ສີເທົາ', 'lt': 'pilka', 'lv': 'pelēks', 'mn': 'саарал', 'mr': 'ग्रे|ग्रे', 'nb': 'grå|gray', 'nl': 'grijs', 'nn': 'grå|gray', 'oc': 'gris|gris', 'or': 'ଧୂସର|grey', 'pt_BR': 'cinza', 'ro': 'gray|grey|gri', 'ru': 'серый', 'sid': 'boora|bulla', 'sk': 'sivá', 'sl': 'siva', 'sq': 'gri|gri', 'sr_Latn': 'siva', 'sr': 'сива', 'tr': 'gri|gri', 'uk': 'сірий', 'vec': 'grizo|grijo', 'zh_CN': '灰|灰色|gray|grey', 'zh_TW': '灰|gray|grey'},
2376'WHITE':{'en_US': 'white', 'af': 'wit', 'am': 'ነጭ', 'ar': 'أبيض', 'as': 'বগা', 'ast': 'blancu', 'be': 'белы', 'bn_IN': 'সাদা', 'br': 'gwenn', 'bs': 'bijela', 'ca': 'blanc', 'ca_valencia': 'blanc', 'ckb': 'سپی', 'cy': 'gwyn', 'cs': 'bílá', 'de': 'weiß', 'dsb': 'běły', 'el': 'λευκό|white', 'eo': 'blanka', 'es': 'blanco', 'et': 'valge', 'eu': 'zuria', 'fi': 'valkoinen', 'fr': 'blanc', 'fy': 'wyt', 'gd': 'geal', 'gl': 'branco', 'gug': 'morotĩ', 'gu': 'સફેદ', 'he': 'לבן', 'hi': 'सफ़ेद', 'hr': 'bijela', 'hsb': 'běły', 'hu': 'fehér', 'is': 'hvítt', 'ja': '白|white', 'kab': 'amellal', 'ka': 'თეთრი', 'kk': 'ақ', 'km': 'ស', 'kn': 'ಬಿಳಿ', 'ko': '흰색', 'lo': 'ສີຂາວ', 'lt': 'balta', 'lv': 'balts', 'ml': 'വെള്ള', 'mn': 'цагаан', 'mr': 'पांढरा', 'nb': 'hvit|white', 'ne': 'सेतो', 'nl': 'wit', 'nn': 'kvit|white', 'oc': 'blanc', 'or': 'ଧଳା', 'pa_IN': 'ਚਿੱਟਾ', 'pt_BR': 'branco', 'ro': 'white|alb', 'ru': 'белый', 'sa_IN': 'सफ़ीद', 'sid': 'waajjo', 'si': 'සුදු', 'sk': 'Biela', 'sl': 'bela', 'sq': 'e bardhë', 'sr_Latn': 'bela', 'sr': 'бела', 'ta': 'வெள்ளை', 'te': 'తెలుపు', 'tr': 'beyaz', 'uk': 'білий', 'zh_CN': '白|白色|white', 'zh_TW': '白|white'},
2377'MAROON':{'en_US': 'maroon', 'am': 'የሸክላ ቀለም', 'ar': 'كستنائي', 'as': 'কৃষ্ণৰক্তবৰ্ণ', 'ast': 'marrón', 'be': 'бардовы', 'bn_IN': 'মেরুন', 'br': 'gell', 'bs': 'kestenjasta', 'ca': 'granat|grana', 'ca_valencia': 'granat|grana', 'ckb': 'مارۆنیی', 'cy': 'marŵn', 'cs': 'kaštanová', 'de': 'rotbraun', 'dsb': 'cerwjenobruny', 'el': 'καστανέρυθρο|maroon', 'eo': 'karmezina', 'es': 'guinda|granate', 'et': 'kastanpruun', 'eu': 'granatea', 'fi': 'punaruskea', 'fr': 'marron', 'fy': 'kastanjebrûn', 'gd': 'ciar-dhonn', 'gl': 'granate', 'gug': 'marrón', 'gu': 'મરૂન', 'he': 'חוםכהה', 'hi': 'मरून', 'hr': 'kestenjasta', 'hsb': 'čerwjenobruny', 'hu': 'sötétbarna', 'is': 'ljósbrúnt', 'ja': 'くり色|マルーン|maroon', 'kab': 'aqahwi', 'kk': 'қызыл-қоңыр', 'km': 'ត្នោត\u200bចាស់', 'kn': 'ಕಂದುಗೆಂಪು', 'ko': '적갈색', 'lo': 'ສີນ້ຳຕານແດງ', 'lt': 'kaštoninė', 'lv': 'tumšsarkans', 'ml': 'മറൂണ്\u200d', 'mn': 'улаанбор', 'mr': 'मरून', 'nb': 'rødbrun|maroon', 'nl': 'kastanjebruin', 'nn': 'raudbrun|maroon', 'or': 'ଖଇରିଆ', 'pt_BR': 'castanho', 'ro': 'maroon|maro', 'ru': 'бордовый', 'sid': 'maarone', 'sk': 'gaštanová', 'sl': 'kostanjeva', 'sq': 'gështenjë', 'sr_Latn': 'kestenasta', 'sr': 'кестенаста', 'ta': 'மரூன்', 'te': 'మెరూన్', 'tr': 'bordo', 'uk': 'каштановий', 'zh_CN': '咖啡|黑褐|红棕|栗色|maroon', 'zh_TW': '咖啡|黑褐|紅棕|maroon'},
2378'RED':{'en_US': 'red', 'af': 'rooi', 'am': 'ቀይ', 'ar': 'أحمر', 'as': 'ৰঙা', 'ast': 'bermeyu', 'be': 'чырвоны', 'bn_IN': 'লাল', 'br': 'ruz', 'bs': 'crvena', 'ca': 'vermell|roig', 'ca_valencia': 'roig', 'ckb': 'سور', 'cy': 'coch', 'cs': 'červená', 'de': 'rot', 'dgo': 'सूहा', 'dsb': 'cerwjeny', 'el': 'κόκκινο|red', 'eo': 'ruĝa', 'es': 'rojo', 'et': 'punane', 'eu': 'gorria', 'fi': 'punainen', 'fr': 'rouge', 'fy': 'read', 'gd': 'dearg', 'gl': 'vermello', 'gug': 'pytã', 'gu': 'લાલ', 'he': 'אדום', 'hi': 'लाल', 'hr': 'crvena', 'hsb': 'čerwjeny', 'hu': 'piros|vörös', 'is': 'rautt', 'ja': '赤|red', 'kab': 'azeggaɣ', 'kk': 'қызыл', 'km': 'ក្រហម', 'kn': 'ಕೆಂಪು', 'kok': 'तांबडोTambddo', 'ko': '빨간색', 'lo': 'ສີແດງ', 'lt': 'raudona', 'lv': 'sarkans', 'ml': 'ചുവപ്പ്', 'mni': 'অঙাংবা', 'mn': 'улаан', 'mr': 'लाल', 'nb': 'rød|red', 'nl': 'rood', 'nn': 'raud|red', 'oc': 'roge', 'or': 'ଲାଲି', 'pt_BR': 'vermelho', 'ro': 'red|roșu', 'ru': 'красный', 'sa_IN': 'वुज़ुल', 'sat': 'आराक्', 'sd': 'ڳاڙهو', 'sid': 'duumo', 'sk': 'červená', 'sl': 'rdeča', 'sq': 'e kuqe', 'sr_Latn': 'crvena', 'sr': 'црвена', 'ta': 'சிவப்பு', 'te': 'ఎరుపు', 'th': 'แดง', 'tr': 'kırmızı', 'uk': 'червоний', 'zh_CN': '红|红色|red', 'zh_TW': '紅|red'},
2379'PURPLE':{'en_US': 'purple', 'af': 'pers', 'am': 'ወይን ጠጅ', 'ar': 'بنفسجي', 'as': 'জামুকলীয়া', 'ast': 'púrpura', 'be': 'пурпурны', 'bn_IN': 'গোলাপী', 'br': 'limestra', 'bs': 'ljubičasta', 'ca': 'porpra|púrpura', 'ca_valencia': 'porpra|púrpura', 'ckb': 'مۆر', 'cy': 'porffor', 'cs': 'purpurová', 'de': 'lila', 'dgo': 'जामुनी', 'dsb': 'lylowy', 'el': 'πορφυρό|purple', 'eo': 'purpura', 'es': 'púrpura|morado', 'et': 'lilla', 'eu': 'morea', 'fi': 'purppura', 'fr': 'pourpre', 'fy': 'pears', 'gd': 'purpaidh', 'gl': 'púrpura', 'gug': 'lila', 'gu': 'જાંબુડિયો', 'he': 'סגול', 'hi': 'बैंगनी', 'hr': 'ljubičasta', 'hsb': 'purpurny', 'hu': 'lila', 'is': 'purpurablátt', 'ja': '紫|purple', 'kab': 'agadaw', 'kk': 'күлгін', 'km': 'ស្វាយ', 'kn': 'ನೇರಳೆ', 'kok': 'जांबळोZamblli', 'ko': '자주색', 'lo': 'ສີມ່ວງ', 'lt': 'violetinė', 'lv': 'purpura', 'ml': 'പര്\u200dപ്പിള്\u200d', 'mn': 'нил ягаан', 'mr': 'जांभळा', 'nb': 'lilla|purple', 'nl': 'lila', 'nn': 'lilla|purple', 'oc': 'porpra', 'or': 'ବାଇଗଣୀ', 'pa_IN': 'ਵੈਂਗਣੀ', 'pt_BR': 'roxo', 'ro': 'purple|violet', 'ru': 'фиолетовый', 'sa_IN': 'परपोल', 'sat': 'कुरसे बाहा रोङ गाड़माक्', 'sd': 'واڱڻائي', 'sid': 'Hamara', 'sk': 'Purpurová', 'sl': 'škrlatna', 'sq': 'vjollcë', 'sr_Latn': 'ljubičasta', 'sr': 'љубичаста', 'ta': 'ஊதா', 'te': 'వంకాయరంగు', 'tr': 'mor', 'uk': 'фіолетовий', 'vec': 'vioła', 'vi': 'Tía', 'zh_CN': '紫|紫色|purple', 'zh_TW': '紫|purple'},
2380'FUCHSIA':{'en_US': 'fuchsia|magenta', 'af': 'fuchsia', 'ar': 'فوشيا|أرجواني', 'ast': 'fucsia|maxenta', 'be': 'фуксія|пурпурны', 'br': 'fuchia|magenta', 'ca': 'fúcsia|magenta', 'ca_valencia': 'fúcsia|magenta', 'ckb': 'سوری ئەرخەوانی', 'cs': 'magenta', 'de': 'magenta', 'dsb': 'magenta', 'el': 'φούξια|ματζέντα|fuchsia|magenta', 'eo': 'fuksina', 'es': 'fucsia|magenta', 'et': 'magenta|fuksiapunane', 'eu': 'magenta', 'fi': 'fuksia', 'gl': 'fucsia|maxenta', 'gug': 'fucsia|magenta', 'he': "פוקסיה|מג׳נטה|מג'נטה", 'hr': 'fuksija|magneta', 'hsb': 'magenta', 'hu': 'bíbor|ciklámen', 'is': 'blárauður', 'ja': '明るい紫|フクシア|マゼンタ|fuchsia', 'kk': 'қарақошқыл', 'km': 'ស្វាយ\u200bខ្ចី|ស្វាយខ្ចី', 'kn': 'ನೇರಳೆಗೆಂಪು|ಕಡುಗೆಂಪು', 'ko': 'fuchsia|마젠타', 'lo': 'fuchsia|ສີແດງມ່ວງ', 'lt': 'purpurinė', 'lv': 'fuksiju|koši_rozā', 'mn': 'фухсиа|магента', 'mr': 'फुशिआ|मजेंटा', 'nb': 'fuksia|magentarød|magenta', 'nn': 'fuksia|magentaraud|magenta', 'oc': 'fúcsia|magenta', 'pt_BR': 'magenta', 'ru': 'пурпурный', 'sid': 'daama|addama', 'sk': 'purpurová', 'sl': 'fuksija|magentna', 'sq': 'e purpurtë|e purpurtë', 'sr_Latn': 'purpurna', 'sr': 'пурпурна', 'tr': 'eflatun|mor', 'uk': 'пурпуровий', 'vec': 'fucsia|magenta', 'zh_CN': '紫红|紫红色|洋红|洋红色|fuchsia|magenta', 'zh_TW': '洋紅|紅紫|fuchsia|magenta'},
2381'GREEN':{'en_US': 'green', 'af': 'groen', 'am': 'አረንጓዴ', 'ar': 'أخضر', 'as': 'সেউজীয়া', 'ast': 'verde', 'be': 'зялёны', 'bn_IN': 'সবুজ', 'br': 'gwer', 'bs': 'zelena', 'ca': 'verd', 'ca_valencia': 'verd', 'ckb': 'سەوز', 'cs': 'zelená', 'de': 'grün', 'dsb': 'zeleny', 'el': 'πράσινο|green', 'eo': 'verda', 'es': 'verde', 'et': 'roheline', 'eu': 'berdea', 'fi': 'vihreä', 'fr': 'vert', 'fy': 'grien', 'gd': 'uaine', 'gl': 'verde', 'gug': 'aky', 'gu': 'લીલો', 'he': 'ירוק', 'hi': 'हरा', 'hr': 'zelena', 'hsb': 'zeleny', 'hu': 'zöld', 'is': 'grænt', 'ja': '緑|green', 'kab': 'azegzaw', 'ka': 'მწვანე', 'kk': 'жасыл', 'km': 'បៃតង', 'kn': 'ಹಸಿರು', 'ko': '녹색', 'lo': 'ສີຂຽວ', 'lt': 'žalia', 'lv': 'zaļš', 'ml': 'പച്ച', 'mni': 'অশংবা', 'mn': 'ногоон', 'mr': 'हिरवा', 'my': 'အစိမ်းရောင်', 'nb': 'grønn|green', 'ne': 'हरियो', 'nl': 'groen', 'nn': 'grøn|green', 'oc': 'verd', 'or': 'ସବୁଜ', 'pa_IN': 'ਹਰਾ', 'pt_BR': 'verde', 'ro': 'green|verde', 'ru': 'зелёный', 'sd': 'سائو', 'sid': 'haanja', 'si': 'කොළ', 'sk': 'zelená', 'sl': 'zelena', 'sq': 'jeshile', 'sr_Latn': 'zelena', 'sr': 'зелена', 'ta': 'பச்சை', 'te': 'ఆకుపచ్చ', 'th': 'เขียว', 'tr': 'yeşil', 'ug': 'يېشىل', 'uk': 'зелений', 'vi': 'Lục', 'zh_CN': '绿|绿色|green', 'zh_TW': '綠|green'},
2382'LIME':{'en_US': 'lime', 'af': 'lemmetjie', 'am': 'ሎሚ', 'ar': 'ليموني', 'as': 'নেমু', 'ast': 'llima', 'be': 'ярка-зялёны', 'bn_IN': 'সময়', 'br': 'sitroñs', 'ca': 'llima|verd.llima', 'ca_valencia': 'llima|verd.llima', 'cy': 'leim', 'cs': 'žlutozelená', 'de': 'hellgrün', 'dsb': 'swětłozeleny', 'el': 'ανοιχτοπράσινο|lime', 'eo': 'limeta', 'es': 'lima', 'et': 'laimiroheline|laimikarva', 'eu': 'lima', 'fi': 'limetti', 'fr': 'citron', 'fy': 'limoen', 'gd': 'dath na liomaideig', 'gl': 'lima', 'gug': 'lima', 'gu': 'લીંબુ', 'he': 'ליים', 'hi': 'समय', 'hr': 'limun-žuta', 'hsb': 'swětłozeleny', 'hu': 'világoszöld', 'is': 'límónugrænt', 'ja': '明るい緑|ライム色|lime', 'kab': 'aqares', 'ka': 'დრო', 'kk': 'ашық жасыл', 'km': 'បៃតង', 'kn': 'ಸಮಯ', 'ko': '라임', 'lo': 'ສີເຫຼືອງປົນຂຽວ', 'lt': 'citrininė', 'lv': 'laima', 'ml': 'നാരങ്ങ', 'mn': 'цайвар ногоон', 'mr': 'वेळ', 'my': 'အချိန်', 'nb': 'grasgrønn|lime', 'ne': 'समय', 'nl': 'limoen', 'nn': 'grasgrøn|lime', 'oc': 'limon', 'or': 'ଲେମ୍ବୁ ରଙ୍ଗ', 'pa_IN': 'ਸਮਾਂ', 'pt_BR': 'lima', 'ru': 'лимонный', 'sid': 'boloticho', 'si': 'වෙලාව', 'sk': 'limetka', 'sl': 'limetna', 'sq': 'limon', 'sr_Latn': 'svetlo zelena', 'sr': 'светло зелена', 'ta': 'எலுமிச்சை', 'te': 'నిమ్మరంగు', 'tr': 'sarımsı yeşil', 'uk': 'лайм', 'vi': 'Giờ', 'zh_CN': '酸橙色|lime', 'zh_TW': '萊姆綠|亮綠|lime'},
2383'OLIVE':{'en_US': 'olive', 'af': 'olyfgroen', 'am': 'ወይራ', 'ar': 'زيتوني', 'as': 'জলফাই', 'ast': 'oliva', 'be': 'аліўкавы', 'bn_IN': 'জলপাই রং', 'br': 'olivez', 'bs': 'maslinasta', 'ca': 'oliva|verd.oliva', 'ca_valencia': 'oliva|verd.oliva', 'ckb': 'زەیتوونی', 'cy': 'olewydden', 'cs': 'olivová', 'de': 'dunkelgrün', 'dsb': 'oliwnozeleny', 'el': 'λαδί|olive', 'eo': 'oliva', 'es': 'oliva', 'et': 'kollakasroheline|oliivroheline|oliivikarva', 'eu': 'oliba', 'fi': 'oliivi', 'fy': 'oliifgrien', 'gd': 'donn-uaine', 'gl': 'oliva', 'gug': 'oliva', 'gu': 'ઓલિવ', 'he': 'ירוקזית', 'hi': 'जैतून', 'hr': 'maslinasta', 'hsb': 'oliwozeleny', 'hu': 'olajzöld', 'is': 'ólífugrænt', 'ja': '柿色|オリーブ色|olive', 'kab': 'azemmur', 'kk': 'зәйтүн', 'km': 'អូលីវ', 'kn': 'ಆಲಿವ್', 'ko': '올리브', 'lo': 'ສີຂຽວເຂັ້ມປົນສີເຫຼືອງ', 'lt': 'alyvuogių', 'lv': 'olīvu', 'ml': 'ഒലീവ്', 'mn': 'хар ногоон', 'mr': 'ऑलिव्ह', 'nb': 'olivengrønn|olive', 'nl': 'olijfgroen', 'nn': 'olivengrøn|olive', 'oc': 'oliva', 'or': 'ଓଲିଭ', 'pt_BR': 'oliva', 'ru': 'оливковый', 'sid': 'ejersa', 'sk': 'olivová', 'sl': 'olivnozelena', 'sq': 'ulli', 'sr_Latn': 'maslinasta', 'sr': 'маслинаста', 'ta': 'ஆலிவ்', 'te': 'ఆలివ్', 'tr': 'zeytin yeşili', 'uk': 'оливковий', 'vec': 'ołiva', 'zh_CN': '橄榄绿|黄绿|olive', 'zh_TW': '橄欖綠|黃綠|olive'},
2384'YELLOW':{'en_US': 'yellow', 'af': 'geel', 'am': 'ቢጫ', 'ar': 'أصفر', 'as': 'হালধীয়া', 'ast': 'mariellu', 'be': 'жоўты', 'bn_IN': 'হলুদ', 'br': 'melen', 'bs': 'žuta', 'ca': 'groc', 'ca_valencia': 'groc', 'ckb': 'زەرد', 'cy': 'melyn', 'cs': 'žlutá', 'de': 'gelb', 'dsb': 'žołty', 'el': 'κίτρινο|yellow', 'eo': 'flava', 'es': 'amarillo', 'et': 'kollane', 'eu': 'horia', 'fi': 'keltainen', 'fr': 'jaune', 'fy': 'giel', 'gd': 'buidhe', 'gl': 'amarelo', 'gug': "sa'yju", 'gu': 'પીળો', 'he': 'צהוב', 'hi': 'पीला', 'hr': 'žuta', 'hsb': 'žołty', 'hu': 'sárga', 'is': 'gult', 'ja': '黄|yellow', 'kab': 'awraɣ', 'ka': 'ყვითელი', 'kk': 'сары', 'km': 'លឿង', 'kn': 'ಹಳದಿ', 'ko': '노랑', 'lo': 'ສີເຫຼືອງ', 'lt': 'geltona', 'lv': 'dzeltens', 'ml': 'മഞ്ഞ', 'mn': 'шар', 'mr': 'पिवळा', 'my': 'အဝါ', 'nb': 'gul|yellow', 'ne': 'पहेलो', 'nl': 'geel', 'nn': 'gul|yellow', 'oc': 'jaune', 'or': 'ହଳଦିଆ', 'pa_IN': 'ਪੀਲਾ', 'pt_BR': 'amarelo', 'ro': 'yellow|galben', 'ru': 'жёлтый', 'sd': 'پيلو', 'sid': 'baqqala', 'si': 'කහ', 'sk': 'žltá', 'sl': 'rumena', 'sq': 'e verdhë', 'sr_Latn': 'žuta', 'sr': 'жута', 'ta': 'மஞ்சள்', 'te': 'పసుపు', 'th': 'เหลือง', 'tr': 'sarı', 'ug': 'سېرىق', 'uk': 'жовтий', 'vec': 'zało', 'vi': 'Vàng', 'zh_CN': '黄|黄色|yellow', 'zh_TW': '黃|yellow'},
2385'NAVY':{'en_US': 'navy', 'af': 'vlootblou', 'am': 'የባህር ኃይል', 'ar': 'أزرق_بحري', 'as': 'ইষৎনীলা', 'ast': 'azulmarín|marín', 'be': 'цёмна-сіні', 'bn_IN': 'অাকাশি', 'br': 'glaz mor', 'bs': 'mornarska', 'ca': 'blau.marí|marí', 'ca_valencia': 'blau.marí|marí', 'cy': 'glas y llynges', 'cs': 'tmavomodrá', 'de': 'dunkelblau', 'dsb': 'śamnomódry', 'el': 'θαλασσί|navy', 'eo': 'malhelblua', 'es': 'azul.marino|marino', 'et': 'meresinine', 'eu': 'itsasurdina', 'fi': 'laivasto', 'fr': 'marine', 'fy': 'navyblau', 'gd': "gorm a' chabhlaich", 'gl': 'mariño', 'gug': 'hovy.marino|marino', 'gu': 'નેવી', 'he': 'כחולכהה', 'hi': 'नेवी', 'hr': 'tamnoplava', 'hsb': 'ćmowomódry', 'hu': 'sötétkék', 'is': 'flotablátt', 'ja': '濃い青|ネイビー|navy', 'kk': 'қою_көк', 'km': 'ខៀវ\u200bចាស់', 'kn': 'ಗಾಢಬೂದು ನೀಲಿ', 'ko': '군청색', 'lo': 'ສີຟ້າເຂັ້ມ', 'lt': 'jūros', 'lv': 'tumšzils', 'ml': 'നേവി', 'mn': 'хар хөх', 'mr': 'नेव्हि', 'nb': 'marineblå|navy', 'nl': 'marineblauw', 'nn': 'marineblå|navy', 'oc': 'blaumarina', 'or': 'ଗାଢ଼ ନୀଳ', 'pt_BR': 'marinho', 'ru': 'тёмно-синий', 'sid': 'baaruwolqa', 'sk': 'tmavomodrá', 'sl': 'mornarskomodra', 'sq': 'ngjyrë kaltër e errët', 'sr_Latn': 'mornarsko plava', 'sr': 'морнарско плава', 'ta': 'நேவி', 'te': 'నావి', 'tr': 'lacivert', 'uk': 'темно-синій', 'vec': 'marina', 'zh_CN': '海蓝|深蓝|navy', 'zh_TW': '海藍|靛|深藍|navy'},
2386'BLUE':{'en_US': 'blue', 'af': 'blou', 'am': 'ሰማያዊ', 'ar': 'أزرق', 'as': 'নীলা', 'ast': 'azul', 'be': 'сіні', 'bn_IN': 'নীল', 'br': 'glas', 'bs': 'plava', 'ca': 'blau', 'ca_valencia': 'blau', 'ckb': 'شین', 'cy': 'glas', 'cs': 'modrá', 'de': 'blau', 'dsb': 'módry', 'el': 'γαλάζιο|blue', 'eo': 'blua', 'es': 'azul', 'et': 'sinine', 'eu': 'urdina', 'fi': 'sininen', 'fr': 'bleu', 'fy': 'blau', 'gd': 'gorm', 'gl': 'azul', 'gug': 'hovy', 'gu': 'વાદળી', 'he': 'כחול', 'hi': 'नीला', 'hr': 'plava', 'hsb': 'módry', 'hu': 'kék', 'is': 'blátt', 'ja': '青|blue', 'kab': 'amidadi', 'ka': 'ლურჯი', 'kk': 'көк', 'km': 'ខៀវ', 'kn': 'ನೀಲಿ', 'ko': '청색', 'lo': 'ສີຟ້າ', 'lt': 'mėlyna', 'lv': 'zils', 'ml': 'നീല', 'mni': 'হীগোক', 'mn': 'хөх', 'mr': 'निळा', 'my': 'အပြာရောင်', 'nb': 'blå|blue', 'ne': 'नीलो', 'nl': 'blauw', 'nn': 'blå|blue', 'oc': 'blau', 'or': 'ନୀଳ', 'pa_IN': 'ਨੀਲਾ', 'pt_BR': 'azul', 'ro': 'blue|albastru', 'ru': 'синий', 'sd': 'نيرو', 'sid': 'gordaamo', 'si': 'නිල්', 'sk': 'modrá', 'sl': 'modra', 'sq': 'blu', 'sr_Latn': 'plava', 'sr': 'плава', 'ta': 'நீலம்', 'te': 'నీలం', 'th': 'น้ำเงิน', 'tr': 'mavi', 'ug': 'كۆك', 'uk': 'синій', 'vec': 'blè', 'vi': 'Xanh', 'zh_CN': '蓝|蓝色|blue', 'zh_TW': '藍|blue'},
2387'TEAL':{'en_US': 'teal', 'af': 'blougroen', 'am': 'አረንጓዴ ሰማያዊ', 'ar': 'أزرق_مخضر', 'as': 'টিল', 'ast': 'xade', 'be': 'бірузовы', 'bn_IN': 'টিল', 'br': 'houad', 'bs': 'grogotovac', 'ca': 'jade', 'ca_valencia': 'jade', 'cs': 'zelenomodrá', 'de': 'blaugrün', 'dsb': 'zelenomódry', 'el': 'γαλαζοπράσινο|teal', 'eo': 'bluverda', 'es': 'cerceta|verde.azulado', 'et': 'sinakasroheline', 'eu': 'urdin berdexka', 'fi': 'sinivihreä', 'fr': 'bleuclair', 'fy': 'grienblau', 'gd': 'dath na crann-lach', 'gl': 'verde azulado', 'gug': 'aky-hovyha', 'gu': 'બતક', 'he': 'צהבהב', 'hi': 'हरा-नीला', 'hr': 'tirkizna', 'hsb': 'módrozeleny', 'hu': 'kékeszöld', 'is': 'djúp-blágrænt', 'ja': 'マガモ色|くすんで暗い青|ティール|teal', 'kab': 'anili afaw', 'kk': 'жасыл_көк', 'km': 'ខៀវ\u200bបៃតង\u200bក្រមៅ', 'kn': 'ಗಾಢನೀಲಿಹಸಿರು', 'lo': 'ສີນ້ຳເງິນປົນຂຽວ', 'lt': 'tamsiai.žydra', 'lv': 'zilganzaļš', 'mn': 'хөх ногоон', 'mr': 'टिअल', 'nb': 'mørk grønnblå|teal', 'nl': 'Turquoise', 'nn': 'mørk grønblå|teal', 'oc': 'baluclar', 'or': 'କଳହଂସ', 'pt_BR': 'turquesa', 'ru': 'сине-зелёный', 'sid': 'shiima dakiyye', 'sk': 'tyrkysová', 'sl': 'modrozelena', 'sq': 'blu e lehtë', 'sr_Latn': 'til', 'sr': 'тил', 'ta': 'டீல்', 'te': 'టీల్', 'tr': 'deniz mavisi', 'uk': 'синьо-зелений', 'vec': 'verde mar', 'zh_CN': '蓝绿色|蓝绿|teal', 'zh_TW': '藍綠|teal'},
2388'AQUA':{'en_US': 'aqua|cyan', 'af': 'siaan', 'am': 'ዉሀ|አረንጓዴ', 'ar': 'سماوي|سيان', 'ast': 'agua|cian', 'be': 'блакітны', 'br': 'dour|cyan', 'bs': 'vodena|cyan', 'ca': 'cian', 'ca_valencia': 'cian', 'cs': 'azurová', 'de': 'türkis|cyan', 'dsb': 'akwamarin|cyan', 'el': 'ανοιχτόγαλάζιο|aqua|cyan', 'eo': 'cejanblua', 'es': 'agua|cian', 'et': 'rohekassinine|tsüaan', 'eu': 'ura|cyana', 'fi': 'syaani', 'fr': 'turquoise|cyan', 'fy': 'wetter|cyaan', 'gd': 'aqcua|saidhean', 'gl': 'auga|ciano', 'gug': 'y|cian', 'he': 'ים|ציאן|מים', 'hr': 'vodena|cijan', 'hsb': 'akwamarinowy|cyanowy', 'hu': 'ciánkék|cián', 'is': 'blágrænt', 'ja': 'アクア|シアン|aqua', 'kk': 'көгілдір', 'kn': 'ನೀಲಿಹಸಿರು|ಹಸಿರುನೀಲಿ', 'ko': '아쿠아|시안', 'lo': 'ສີນ້ຳທະເລ|ສີຟ້າປົນຂຽວ (Cyan)', 'lt': 'žydra', 'lv': 'gaišzils', 'mn': 'оюу|cyan', 'mr': 'ॲक्वा|सिअन', 'nb': 'cyanblå|cyan', 'nl': 'water|cyaan', 'nn': 'cyanblå|cyan', 'oc': 'aqua|cian', 'or': 'ପାଣି|cyan', 'pt_BR': 'ciano', 'ru': 'голубой', 'sid': 'aqua|cyaan', 'sk': 'azúrová', 'sl': 'vodenomodra|cijanska', 'sq': 'ujë|blu', 'sr_Latn': 'vodeno plava|cijan', 'sr': 'водено плава|цијан', 'th': 'สีน้ำทะเล|สีฟ้าอมเขียว (Cyan)', 'tr': 'gök mavisi', 'uk': 'блакитний', 'vec': 'acua|cyan', 'zh_CN': '青|青色|aqua|cyan', 'zh_TW': '青藍|青|水藍|aqua|cyan'},
2389'PINK':{'en_US': 'pink', 'af': 'roos', 'am': 'ሮዝ', 'ar': 'وردي', 'as': 'গোলাপী', 'ast': 'rosa', 'be': 'ружовы', 'bn_IN': 'লিংক', 'br': 'roz', 'bs': 'roza', 'ca': 'rosa', 'ca_valencia': 'rosa', 'ckb': 'پەمەیی', 'cy': 'pinc', 'cs': 'růžová', 'de': 'rosa', 'dsb': 'rožowy', 'el': 'ροζ|pink', 'eo': 'rozkolora', 'es': 'rosa', 'et': 'roosa', 'eu': 'arrosa', 'fi': 'pinkki', 'fr': 'rose', 'fy': 'rôs', 'gd': 'pinc', 'gl': 'rosa', 'gug': 'pytãngy', 'gu': 'ગુલાબી', 'he': 'ורוד', 'hi': 'कड़ी', 'hr': 'ružićasta', 'hsb': 'róžowy', 'hu': 'rózsaszín', 'is': 'bleikt', 'ja': 'ピンク|pink', 'kab': 'axuxi', 'ka': 'ბმული', 'kk': 'қызғылт', 'km': 'ផ្កាឈូក', 'kn': 'ಸಂಪರ್ಕಕೊಂಡಿ', 'ko': '분홍', 'lo': 'ສີບົວ', 'lt': 'rausva', 'lv': 'rozā', 'ml': 'പിങ്ക്', 'mn': 'ягаан', 'mr': 'पिंक', 'my': 'ကွင်းဆက်', 'nb': 'rosa|pink', 'ne': 'लिङ्क', 'nl': 'roze', 'nn': 'rosa|pink', 'oc': 'ròse', 'or': 'ଗୋଲାପି', 'pa_IN': 'ਲਿੰਕ', 'pt_BR': 'rosa', 'ro': 'pink|roz', 'ru': 'розовый', 'sid': 'dumamo', 'si': 'සබඳින්න', 'sk': 'ružový', 'sl': 'roza', 'sq': 'rozë', 'sr_Latn': 'roze', 'sr': 'розе', 'ta': 'இளஞ்சிவப்பு', 'te': 'పింక్', 'th': 'ชมพู', 'tr': 'pembe', 'uk': 'рожевий', 'vec': 'roza', 'vi': 'Liên kết', 'zh_CN': '粉色|粉|pink', 'zh_TW': '粉紅|pink'},
2390'TOMATO':{'en_US': 'tomato', 'af': 'tamatie', 'am': 'ቲማቲም', 'ar': 'طماطمي', 'as': 'টমেটো', 'ast': 'tomate', 'be': 'тамат', 'bn_IN': 'টোমাটো', 'br': 'tomatez', 'bs': 'paradajz', 'ca': 'tomàquet|tomata', 'ca_valencia': 'tomata|tomaca', 'ckb': 'تەماتەیی', 'cs': 'cihlová', 'de': 'dunkelrot', 'dsb': 'śamnocerwjeny', 'el': 'τοματί|tomato', 'eo': 'tomata', 'es': 'tomate|jitomate', 'et': 'tomatipunane|tomatikarva', 'eu': 'tomatea', 'fi': 'tomaatti', 'fr': 'tomate', 'fy': 'tomaat', 'gd': 'tomàto', 'gl': 'tomate', 'gug': 'tomate', 'gu': 'ટોમેટો', 'he': 'עגבניה', 'hi': 'टमाटर', 'hr': 'rajčica', 'hsb': 'ćmowočerwjeny', 'hu': 'világospiros', 'is': 'tómatur', 'ja': 'トマト|トマト色|tomate', 'kab': 'ṭumaṭic', 'kk': 'күңгірт_қызыл', 'km': 'ប៉េងប៉ោះ', 'kn': 'ಟೊಮ್ಯಾಟೊ', 'ko': '토마토', 'lo': 'ສີໝາກເຫຼັ່ນ', 'lt': 'pomidorų', 'lv': 'tomātu', 'ml': 'തക്കാളി', 'mn': 'гүн улаан', 'mr': 'टोमॅटो', 'nb': 'tomatrød|tomato', 'nl': 'tomaat', 'nn': 'tomatraud|tomato', 'or': 'ଟୋମାଟୋ', 'pt_BR': 'tomate', 'ru': 'тёмно-красный', 'sid': 'timaatime', 'sk': 'paradajková', 'sl': 'paradižnikova', 'sq': 'domate', 'sr_Latn': 'paradajz crvena', 'sr': 'парадајз црвена', 'ta': 'தக்காளி', 'te': 'టొమాటో', 'tr': 'koyu kırmızı', 'uk': 'томатний', 'vec': 'pomodoro', 'zh_CN': '番茄红|tomato', 'zh_TW': '蕃茄紅|茄紅|tomato'},
2391'ORANGE':{'en_US': 'orange', 'af': 'oranje', 'am': 'ብርቱካን', 'ar': 'برتقالي', 'as': 'সুমথীৰা', 'ast': 'naranxa', 'be': 'аранжавы', 'bn_IN': 'পরিসর', 'br': 'orañjez', 'bs': 'narandžasta', 'ca': 'taronja', 'ca_valencia': 'taronja', 'ckb': 'پرتەقاڵی', 'cy': 'oren', 'cs': 'oranžová', 'dsb': 'oranžowy', 'el': 'πορτοκαλί|orange', 'eo': 'oranĝa', 'es': 'naranja', 'et': 'oranž|apelsinikarva', 'eu': 'laranja', 'fi': 'oranssi', 'fy': 'oranje', 'gd': 'orains', 'gl': 'laranxa', 'gug': 'narã', 'gu': 'નારંગી', 'he': 'כתום', 'hi': 'दायरा', 'hr': 'narančasta', 'hsb': 'oranžowy', 'hu': 'narancssárga|narancs', 'is': 'appelsínugult', 'ja': 'オレンジ|オレンジ色|orange', 'kab': 'ačinawi', 'ka': 'ფორთოხლისფერი', 'kk': 'қызғылт-сары', 'km': '\u200bទឹក\u200bក្រូច', 'kn': 'ವ್ಯಾಪ್ತಿ', 'ko': '오렌지', 'lo': 'ສີສົ້ມ', 'lt': 'oranžinė', 'lv': 'oranžs', 'ml': 'ഓറഞ്ച്', 'mn': 'улбар шар', 'mr': 'नारंगी', 'my': 'ကန့်သတ်နယ်ပယ်', 'nb': 'oransje|orange', 'ne': 'दायरा', 'nl': 'oranje', 'nn': 'oransje|orange', 'oc': 'irange', 'or': 'କମଳା', 'pa_IN': 'ਰੇਜ਼', 'pt_BR': 'laranja', 'ro': 'orange|portocaliu', 'ru': 'оранжевый', 'sid': 'burtukaane', 'si': 'පරාසය', 'sk': 'oranžová', 'sl': 'oranžna', 'sq': 'portokalli', 'sr_Latn': 'narandžasta', 'sr': 'наранџаста', 'ta': 'ஆரஞ்சு', 'te': 'ఆరెంజ్', 'tr': 'turuncu', 'uk': 'оранжевий', 'vi': 'phạm vi', 'zh_CN': '橙色|橙|orange', 'zh_TW': '橘黃|橙黃|橙|橘|orange'},
2392'GOLD':{'en_US': 'gold', 'af': 'goud', 'am': 'ወርቅማ', 'ar': 'ذهبي', 'as': 'সোন', 'ast': 'doráu', 'be': 'залаты', 'bn_IN': 'গাঢ়', 'br': 'aour', 'bs': 'zlatna', 'ca': 'or|daurat', 'ca_valencia': 'or|daurat', 'ckb': 'ئاڵتوونی', 'cy': 'aur', 'cs': 'zlatá', 'dsb': 'złośany', 'el': 'χρυσαφί|gold', 'eo': 'ora', 'es': 'oro', 'et': 'kuldne', 'eu': 'urrea', 'fi': 'kulta', 'fr': 'or', 'fy': 'goud', 'gd': 'òir', 'gl': 'ouro', 'gug': 'oro', 'gu': 'સોનુ', 'he': 'זהב', 'hi': 'मोटा', 'hr': 'zlatna', 'hsb': 'złoty', 'hu': 'aranysárga|arany', 'is': 'gull', 'ja': '金|金色|gold', 'kab': 'ureɣ', 'ka': 'შეკვრა', 'kk': 'алтын', 'km': 'មាស', 'kn': 'ಬೋಲ್ಡ್\u200d', 'ko': '금색', 'lo': 'ສີທອງຄຳ', 'lt': 'auksinė', 'lv': 'zelta', 'ml': 'സ്വര്\u200dണ്ണം', 'mn': 'алтан', 'mr': 'सोनेरी', 'my': 'စာလုံးမဲ', 'nb': 'gull|gold', 'ne': 'बाक्लो', 'nl': 'goud', 'nn': 'gull|gold', 'oc': 'aur', 'or': 'ସ୍ୱର୍ଣ୍ଣ', 'pa_IN': 'ਗੂੜ੍ਹੇ', 'pt_BR': 'ouro', 'ro': 'gold|auriu', 'ru': 'золотой', 'sid': 'clka', 'si': 'තදකුරු', 'sk': 'zlatý', 'sl': 'zlata', 'sq': 'ngjyrë ari', 'sr_Latn': 'zlatna', 'sr': 'златна', 'ta': 'தங்கம்', 'te': 'బంగారం', 'th': 'ทอง', 'tr': 'altın rengi', 'uk': 'золотий', 'vi': 'Đậm', 'zh_CN': '金色|金|gold', 'zh_TW': '金黃|金|gold'},
2393'VIOLET':{'en_US': 'violet', 'am': 'ወይን ጠጅ', 'ar': 'بنفسجي', 'as': 'বেঙুনীয়া', 'ast': 'violeta', 'be': 'бэзавы', 'bn_IN': 'বেগুনী', 'br': 'mouk', 'bs': 'ljubičasta', 'ca': 'violat|violeta', 'ca_valencia': 'violat|violeta', 'ckb': 'وەنەوشەیی', 'cy': 'fioled', 'cs': 'fialová', 'de': 'violett', 'dsb': 'wioletny', 'el': 'βιολετί|violet', 'eo': 'viola', 'es': 'violeta', 'et': 'violetne', 'eu': 'bioleta', 'fi': 'violetti', 'fy': 'fiolet', 'gd': 'dath na fail-chuaiche', 'gl': 'violeta', 'gug': 'violeta', 'gu': 'જાંબલી', 'he': 'סגולעדין', 'hi': 'बैंगनी', 'hr': 'ljubičasta', 'hsb': 'fijałkojty', 'hu': 'ibolyakék|ibolya|viola', 'is': 'fjólublátt', 'ja': 'すみれ色|バイオレット|ヴァイオレット|violet', 'kab': 'amidadi', 'ka': 'იისფერი', 'kk': 'күлгін', 'km': 'ស្វាយ', 'kn': 'ನೇರಳೆ', 'ko': '보라색', 'lo': 'ສີມ່ວງ', 'lt': 'alyvų', 'lv': 'violets', 'ml': 'വയലറ്റ്', 'mn': 'ягаан', 'mr': 'गडद जांभळा', 'my': 'ခရမ်းရောင်', 'nb': 'fiolett|violet', 'ne': 'बैजनी', 'nn': 'fiolett|violet', 'or': 'ବାଇଗଣି', 'pa_IN': 'ਵੈਂਗਣੀ', 'pt_BR': 'violeta', 'ru': 'фиолетовый', 'sid': 'hamara', 'si': 'ජම්බුල වර්ණය', 'sk': 'Fialová', 'sl': 'vijolična', 'sr_Latn': 'ljubičasta', 'sr': 'љубичаста', 'ta': 'ஊதா', 'te': 'వంకాయరంగు', 'tr': 'menekşe', 'ug': 'بىنەپشە', 'uk': 'фіалковий', 'vec': 'łiła', 'vi': 'Tím xanh', 'zh_CN': '紫罗兰|蓝紫|violet', 'zh_TW': '紫蘿蘭|藍紫|violet'},
2394'SKYBLUE':{'en_US': 'skyblue', 'af': 'hemelblou', 'am': 'ሰማያዊ', 'ar': 'سماوي', 'as': 'আকাশনীলা', 'ast': 'celeste', 'be': 'нябесна-блакітны', 'bn_IN': 'অাকাশি নীল', 'br': 'glaz oabl', 'bs': 'nebeskoplava', 'ca': 'blau.cel|cel', 'ca_valencia': 'blau.cel|cel', 'ckb': 'شینی ئاسمانی', 'cs': 'bleděmodrá', 'de': 'hellblau', 'dsb': 'njebjomódry', 'el': 'ουρανί|skyblue', 'eo': 'ĉielblua', 'es': 'azul.cielo|celeste', 'et': 'taevasinine', 'eu': 'zeruurdina', 'fi': 'taivaansininen', 'fr': 'bleuciel', 'fy': 'himelsblau', 'gd': 'speur-ghorm', 'gl': 'celeste', 'gug': 'hovyyvága|celeste', 'gu': 'આકાશીવાદળી', 'he': 'כחולשמיים|כחולשמים|שמיים|שמים', 'hi': 'आसमानी', 'hr': 'nebeskoplava', 'hsb': 'njebjomódry', 'hu': 'égszínkék|világoskék', 'is': 'himinblátt', 'it': 'celeste', 'ja': '空色|スカイブルー|skyblue', 'kab': 'anili igni', 'kk': 'ашық_көк', 'km': 'ផ្ទៃមេឃ', 'kn': 'ಆಕಾಶನೀಲಿ', 'ko': '하늘색', 'lo': 'ສີທ້ອງຟ້າ', 'lt': 'dangaus', 'lv': 'debeszils', 'ml': 'സ്കൈബ്ലൂ', 'mn': 'хөх тэнгэр', 'mr': 'स्कायब्ल्यु', 'nb': 'himmelblå|skyblue', 'nl': 'hemelsblauw', 'nn': 'himmelblå|skyblue', 'or': 'ଆକାଶୀ ନୀଳ', 'pt_BR': 'celeste', 'ru': 'небесно-голубой', 'sid': 'gordukuula', 'sk': 'bledomodrá', 'sl': 'nebesnomodra', 'sq': 'blueqielli', 'sr_Latn': 'nebesko plava', 'sr': 'небеско плава', 'ta': 'வான்நீலம்', 'te': 'నింగినీలం', 'tr': 'gök mavisi', 'uk': 'небесно-синій', 'vec': 'sełeste', 'zh_CN': '天蓝|天蓝色|skyblue', 'zh_TW': '天藍|skyblue'},
2395'CHOCOLATE':{'en_US': 'chocolate', 'af': 'sjokolade', 'am': 'ጥቁር ቡናማ', 'ar': 'شوكولاتي', 'as': 'চকোলেট', 'be': 'шакаладны', 'bn_IN': 'চকোলেট', 'br': 'chokolad', 'bs': 'čokolada', 'ca': 'xocolata|xocolate', 'ca_valencia': 'xocolata|xocolate', 'ckb': 'چوکلێتی', 'cy': 'siocled', 'cs': 'čokoládová', 'de': 'dunkelbraun', 'dsb': 'śamnobruny', 'el': 'σοκολατί|chocolate', 'eo': 'ĉokolada', 'et': 'šokolaadipruun|šokolaadikarva', 'eu': 'txokolatea', 'fi': 'suklaa', 'fr': 'chocolat', 'fy': 'sûkelade', 'gd': 'dath na seòclaid', 'gu': 'ચોકલેટ', 'he': 'שוקולד', 'hi': 'चॉकलेट', 'hr': 'čokoladna', 'hsb': 'ćmowobruny', 'hu': 'világosbarna', 'is': 'súkkulaði', 'ja': '薄い茶色|チョコレート|チョコレート色|chocolate', 'kab': 'cakula', 'kk': 'шоколад_түсті', 'km': 'សូកូឡា', 'kn': 'ಚಾಕೋಲೇಟ್', 'ko': '초콜릿색', 'lo': 'ສີຊັອກໂກແລດ', 'lt': 'šokolado', 'lv': 'gaišbrūns', 'ml': 'ചോക്കോളേറ്റ്', 'mn': 'шоколад|хар хүрэн', 'mr': 'चॉकोलेट', 'nb': 'sjokoladebrun|chocolate', 'nl': 'chocolade', 'nn': 'sjokoladebrun|chocolate', 'oc': 'chocolat', 'or': 'ଚକୋଲେଟ', 'ro': 'chocolate|ciocolatiu', 'ru': 'шоколадный', 'sid': 'chokolete', 'sk': 'čokoládová', 'sl': 'čokoladna', 'sq': 'çokollatë', 'sr_Latn': 'čokolada', 'sr': 'чоколада', 'ta': 'சாக்லேட்', 'te': 'చాకోలేట్', 'tr': 'çikolata', 'uk': 'шоколадний', 'vec': 'ciocołata', 'zh_CN': '巧克力|褐色|chocolate', 'zh_TW': '巧克力|褐|chocolate'},
2396'BROWN':{'en_US': 'brown', 'af': 'bruin', 'am': 'ቡናማ', 'ar': 'بني', 'as': 'মূগা', 'ast': 'marrón', 'be': 'карычневы', 'bn_IN': 'বাদামি', 'br': 'liv kistin', 'bs': 'smeđa', 'ca': 'marró', 'ca_valencia': 'marró', 'ckb': 'قاوەیی', 'cs': 'hnědá', 'da': 'bbrown', 'de': 'braun', 'dsb': 'bruny', 'el': 'καφέ|brown', 'eo': 'bruna', 'es': 'marrón|café', 'et': 'pruun', 'eu': 'marroia', 'fi': 'ruskea', 'fr': 'marronclair', 'fy': 'brún', 'gd': 'donn', 'gl': 'marrón', 'gug': 'marrón', 'gu': 'તપખીરિયા રંગનું', 'he': 'חום', 'hi': 'भूरा', 'hr': 'smeđa', 'hsb': 'bruny', 'hu': 'barna', 'is': 'brúnt', 'ja': '茶色|ブラウン|brown', 'kab': 'aqehwi', 'ka': 'ყავისფერი', 'kk': 'қоңыр', 'km': 'ត្នោត', 'kn': 'ಕಂದು', 'ko': '갈색', 'lo': 'ສີນ້ຳຕານ', 'lt': 'ruda', 'lv': 'brūns', 'ml': 'ബ്രൌണ്\u200d', 'mn': 'хүрэн', 'mr': 'ब्राउन', 'my': 'အညို', 'nb': 'brun|brown', 'ne': 'कैलो', 'nl': 'bruin', 'nn': 'brun|brown', 'oc': 'marron', 'or': 'ବାଦାମୀ', 'pa_IN': 'ਭੂਰਾ', 'pt_BR': 'marrom', 'ro': 'brown|maro', 'ru': 'коричневый', 'sid': 'daama', 'si': 'දුඹුරු', 'sk': 'Hnedá', 'sl': 'rjava', 'sq': 'kafe', 'sr_Latn': 'braon', 'sr': 'браон', 'ta': 'பழுப்பு', 'te': 'గోధుమరంగు', 'th': 'น้ำตาล', 'tr': 'kahverengi', 'uk': 'коричневий', 'vec': 'maron', 'vi': 'Nâu', 'zh_CN': '棕色|棕|brown', 'zh_TW': '棕|brown'},
2397'LIBRELOGO':{'en_US': 'LibreLogo', 'am': 'የሊብሬ ምልክት', 'ar': 'ليبر\u200cلوغو', 'ckb': '\u202bLibreLogo', 'hi': 'लिब्रेलोगो', 'ko': '리브레로고', 'ml': 'ലിബര്\u200dലോഗോ', 'mn': 'LibreЛого', 'mr': 'लाइबरलोगो', 'or': 'Libre ପ୍ରତୀକ', 'sq': 'LogoeLibre', 'sr_Latn': 'Librelogo', 'sr': 'Либрелого', 'te': 'లిబ్రేలోగో'},
2398'ERROR':{'en_US': 'Error (in line %s)', 'af': 'Fout (in reël %s)', 'am': 'ስህተት (በ መስመር %s) ላይ', 'ar': 'خطأ (في السطر %s)', 'as': 'ত্ৰুটি (শাৰী %s ত)', 'ast': 'Fallu (na ringlera %s)', 'be': 'Памылка (у радку %s)', 'bg': 'Грешка (в ред %s)', 'bn_IN': 'ত্রুটি (ইন লাইন %s)', 'br': 'Fazi (gant linenn %s)', 'bs': 'Greška (u liniji %s)', 'ca': "S'ha produït un error (a la línia %s)", 'ca_valencia': "S'ha produït un error (a la línia %s)", 'cy': 'Gwall (yn llinell: %s)', 'cs': 'Chyba (na řádku %s)', 'da': 'Fejl (i linje %s)', 'de': 'Fehler (in Zeile %s)', 'dsb': 'Zmólka (w smužce %s)', 'el': 'Σφάλμα (στη γραμμή %s)', 'eo': 'Eraro (en linio %s)', 'es': 'Error (en el renglón %s)', 'et': 'Viga (real %s)', 'eu': 'Errorea (%s lerroan)', 'fi': 'Virhe (rivillä %s)', 'fr': 'Erreur (à la ligne %s)', 'fy': 'Flater (op rigel %s)', 'ga': 'Earráid (ar líne %s)', 'gd': 'Mearachd (ann an loidhne %s)', 'gl': 'Erro (na liña %s)', 'gug': 'Jejavy (líneape %s)', 'gu': 'ભૂલ (વાક્ય %s માં)', 'he': 'שגיאה (בשורה %s)', 'hi': 'त्रुटि (%s पंक्ति में)', 'hr': 'Greška (u retku %s)', 'hsb': 'Zmylk (w lince %s)', 'hu': 'Hiba (%s. sor)', 'id': 'Galat (dalam baris %s)', 'is': 'Villa (á línu %s)', 'it': 'Errore (nella riga %s)', 'ja': '(%s 行目で)エラー', 'kab': 'Tuccḍa(deg uzirig %s)', 'kk': 'Қате (%s жолында)', 'km': 'កំហុស (ក្នុង\u200bតួ %s)', 'kn': 'ದೋಷ (%s ಸಾಲಿನಲ್ಲಿ)', 'ko': '오류 (%s 번째 줄)', 'lo': 'ເກີດຂໍ້ຜິດພາດ (ໃນແຖວ %s)', 'lt': 'Klaida (%s eilutėje)', 'lv': 'Kļūda (rindā %s)', 'ml': 'പിശക് (%s വരിയില്\u200d)', 'mn': 'Алдаа (%s мөрөнд)', 'mr': 'त्रुटी (ओळ %s वरील)', 'nb': 'Feil (i linje %s)', 'nl': 'Error (op regel %s)', 'nn': 'Feil (i linje %s)', 'oc': 'Error (a la linha %s)', 'or': 'ତ୍ରୁଟି (ଧାଡ଼ି %s ରେ)', 'pl': 'Błąd (w wierszu %s)', 'pt_BR': 'Erro (na linha %s)', 'pt': 'Erro (na linha %s)', 'ro': 'Eroare (la linia %s)', 'ru': 'Ошибка (в строке %s)', 'sid': 'Soro (%s xuruuri giddo)', 'sk': 'Chyba (na riadku %s)', 'sl': 'Napaka (v vrstici %s)', 'sq': 'Gabim (në rreshtin %s)', 'sr_Latn': 'Greška (red %s)', 'sr': 'Грешка (ред %s)', 'sv': 'Fel (på rad %s)', 'szl': 'Błōnd (we liniji %s)', 'ta': 'பிழை (வரி %s இல்)', 'te': 'దోషం (వరుస %s నందు)', 'tr': 'Hata (%s satırında)', 'ug': 'خاتالىق(%s قۇردا)', 'uk': 'Помилка (в рядку %s)', 'vec': 'Eror (inte ła riga %s)', 'zh_CN': '错误 (在第 %s 行)', 'zh_TW': '錯誤 (第 %s 列)'},
2399'ERR_ZERODIVISION':{'en_US': 'Division by zero.', 'af': 'Deling deur nul.', 'am': 'በዜሮ ማካፈል', 'ar': 'القسمة على صفر.', 'as': 'শুণ্যৰে হৰণ কৰা ।', 'ast': 'División por cero.', 'be': 'Дзяленне на нуль.', 'bg': 'Деление на нула.', 'bn_IN': 'শূন্য দিয়ে বিভাজন।', 'bn': 'শূন্য দিয়ে বিভাজন।', 'bo': 'ཀླད་ཀོར་ཕུད།', 'br': 'Rannadur dre vann.', 'brx': 'लाथिखजों राननाय.', 'bs': 'Dijeljenje sa nulom.', 'ca': 'Divisió per zero.', 'ca_valencia': 'Divisió per zero.', 'ckb': 'دابەشکردن بەسەر سفردا.', 'cy': 'Rhannu gyda sero.', 'cs': 'Dělení nulou.', 'da': 'Division med nul.', 'de': 'Division durch Null.', 'dgo': 'सिफर कन्नै तक्सीम', 'dsb': 'Diwizija pśez nulu.', 'dz': 'ཀླད་ཀོར་གིས་བགོ་རྩིས།', 'el': 'Διαίρεση με το μηδέν.', 'eo': 'Divido per nul.', 'es': 'División por cero.', 'et': 'Nulliga jagamine.', 'eu': 'Zatitzailea zero.', 'fa': 'تقسیم بر صفر', 'fi': 'Jako nollalla.', 'fr': 'Division par zéro.', 'fy': 'Dieling troch nul.', 'ga': 'Roinnt le nialas.', 'gd': 'Roinneadh le neoini.', 'gl': 'División por cero.', 'gug': 'División por cero.', 'gu': 'શૂન્ય દ્વારા વિભાજન.', 'he': 'חלוקה באפס.', 'hi': 'शून्य से विभाजन.', 'hr': 'Dijeljenje s nulom.', 'hsb': 'Diwizija přez nulu.', 'hu': 'Osztás nullával.', 'id': 'Pembagian oleh nol.', 'is': 'Deiling með núlli.', 'it': 'Divisione per zero.', 'ja': 'ゼロで割り算した。', 'kab': 'Tabeṭṭayt ɣef ilem.', 'ka': 'ნულზე გაყოფა.', 'kk': 'Нөлге бөлу.', 'km': 'ចែក\u200bនឹង\u200bសូន្យ\xa0។', 'kmr_Latn': 'Li sifirê parva kirin.', 'kn': 'ಶೂನ್ಯದಿಂದ ಭಾಗಾಕಾರ.', 'kok': 'शून्यान भाग', 'ko': '영(0)으로 나눔', 'ks': 'صفرسئتھ تقسیم كرُن', 'lo': 'ຫານດ້ວຍສູນ.', 'lt': 'Dalyba iš nulio.', 'lv': 'Dalīšana ar nulli.', 'mai': 'सुन्नासँ भाग', 'mk': 'Делење со нула.', 'ml': 'പൂജ്യം കൊണ്ടു് ഹരിക്കുക.', 'mni': 'শূন্যনা য়েন্নবা.', 'mn': 'Тэгд хуваагдаж байна.', 'mr': 'डिविजन बाय झिरो.', 'my': 'သုံညဖြင့်စားခြင်း။', 'nb': 'Deling med null.', 'ne': 'शून्यद्वारा विभाजन ।', 'nl': 'Deling door nul.', 'nn': 'Deling med null.', 'oc': 'Division per zèro.', 'om': 'Qooddii zeeroodhaanii.', 'or': 'ଶୂନ୍ୟ ଦ୍ୱାରା ବିଭାଜିତ।', 'pa_IN': 'ਜ਼ੀਰੋ ਨਾਲ ਭਾਗ', 'pl': 'Dzielenie przez zero.', 'pt_BR': 'Divisão por zero.', 'pt': 'Divisão por zero', 'ro': 'Împărțire la zero.', 'ru': 'Деление на ноль.', 'rw': 'Kugabanya na zeru.', 'sa_IN': 'शून्यतः विभाजनम् ।', 'sat': 'सुन दाराय ते हा़टिञ', 'sd': 'ٻڙيءَ سان ونڊيو', 'sid': 'Zeerotenni beeha.', 'si': 'ශුන්\u200dයයෙන් බෙදීම.', 'sk': 'Delenie nulou.', 'sl': 'Deljenje z nič.', 'sq': 'Pjesëtim me zero.', 'sr_Latn': 'Deljenje nulom.', 'sr': 'Дељење нулом.', 'sv': 'Division med noll.', 'sw_TZ': 'Gawanyika kwa sifuri', 'szl': 'Dzielynie bez zero.', 'ta': 'சுழியால் வகுத்தல்.', 'te': 'సున్నాతో భాగహారము.', 'tg': 'Тақсим бар сифр.', 'th': 'หารด้วยศูนย์', 'tr': 'Sıfıra bölme.', 'tt': 'Нульгә бүлү.', 'ug': 'نۆلگە بۆلۈنگەن.', 'uk': 'Ділення на нуль.', 'uz': 'Nolga boʻlish', 'vec': 'Divizion par zero.', 'vi': 'Chia cho không.', 'zh_CN': '被零除。', 'zh_TW': '除以零。'},
2400'ERR_NAME':{'en_US': 'Unknown name: “%s”.', 'af': 'Onbekende naam: "%s".', 'am': 'ያልታወቀ ስም: “%s”.', 'ar': 'الاسم مجهول: ”%s“.', 'ast': "Desconozse'l nome: «%s».", 'be': 'Невядомая назва: “%s”.', 'bg': 'Непознато име: „%s“.', 'bn_IN': 'অজানা নাম: “%s”.', 'ca': 'Nom desconegut: «%s».', 'ca_valencia': 'Nom desconegut: «%s».', 'ckb': 'ناوی نەناسراو: %s', 'cy': 'Enw anhysbys: “%s”.', 'cs': 'Neznámý název: „%s“.', 'da': 'Ukendt navn: “%s”.', 'de': 'Unbekannter Name: „%s“.', 'dsb': 'Njeznate mě: “%s”.', 'el': 'Άγνωστο όνομα: “%s”.', 'eo': 'Nekonata nomo: „%s”.', 'es': 'Nombre desconocido: «%s».', 'et': 'Tundmatu nimi: „%s”.', 'eu': 'Izen ezezaguna: “%s”.', 'fi': 'Tuntematon nimi: ”%s”.', 'fr': 'Nom inconnu : “%s”.', 'fy': 'Unbekende namme: “%s”.', 'ga': 'Ainm anaithnid: “%s”.', 'gd': 'Ainm neo-aithnichte: “%s”.', 'gl': 'Nome descoñecido: «%s».', 'gug': "Téra ojekuaa'ỹva: «%s»", 'he': 'שם לא ידוע: „%s“.', 'hr': 'Nepoznato ime: “%s”.', 'hsb': 'Njeznate mjeno: “%s”.', 'hu': 'Ismeretlen név: „%s”.', 'id': 'Nama tak dikenal: “%s”.', 'is': 'Óþekkt heiti: “%s”.', 'it': 'Nome sconosciuto: “%s”.', 'ja': '不明な名前: “%s”。', 'kab': 'Isem arussin: “%s”.', 'kk': 'Аты белгісіз: "%s".', 'ko': '알 수 없는 이름: “%s”', 'lo': 'ບໍ່ຮູ້ຈັກຊື່: “%s”.', 'lt': 'Nežinoma komanda: „%s“.', 'lv': 'Nezināms nosaukums: “%s”.', 'mn': 'Тодорхойгүй нэр: "%s".', 'nb': 'Ukjent navn: «%s».', 'nl': 'Onbekende naam: "%s”.', 'nn': 'Ukjend namn: «%s».', 'oc': 'Nom desconegut : «%s».', 'pl': 'Nierozpoznana nazwa: „%s”.', 'pt_BR': 'Nome desconhecido: “%s”', 'pt': 'Nome desconhecido: “%s”', 'ro': 'Nume necunoscut: „%s”.', 'ru': 'Неизвестное имя: «%s».', 'sk': 'Neznámy názov: „%s“.', 'sl': 'Neznano ime: “%s”.', 'sq': 'Emër i panjohur: "%s".', 'sv': 'Okänt namn: "%s”.', 'szl': 'Niyznōme miano: “%s”.', 'tr': 'Bilinmeyen ad: “%s”.', 'ug': 'يوچۇن ئات: ‘%s”.', 'uk': 'Невідома назва: “%s”.', 'vec': 'Nome mìa conosùo: “%s”.', 'zh_CN': '未知名称:「%s」。', 'zh_TW': '未知名稱:「%s」。'},
2401'ERR_ARGUMENTS':{'en_US': '%s takes %s arguments (%s given).', 'af': '%s het %s argumente nodig (%s gegee).', 'am': '%s የሚወስደው %s ክርክር (%s የተሰጠው)', 'ar': '%s يأخذ %s من المعاملات (%s أُعطيت).', 'as': '%s এ %s তৰ্কসমূহ গ্ৰহণ কৰে (%s দিয়া হৈছে)।', 'ast': '%s lleva %s argumentos (%s daos).', 'be': '%s прымае %s аргументаў (пададзена %s).', 'bg': '%s приема %s аргумента (подадени са %s).', 'br': '%s a geler %s arguzenn (%s roet).', 'bs': '%s uzima %s argumenata (%s dato).', 'ca': '%s pren %s arguments (%s donats).', 'ca_valencia': '%s pren %s arguments (%s donats).', 'cy': 'Mae %s yn cymryd %s ymresymiad (Derbyn %s ).', 'cs': '%s vyžaduje %s argumentů (předáno %s).', 'da': '%s tager %s argumenter (%s givet).', 'de': '%s benötigt %s Argumente (%s angegeben).', 'dsb': '%s trjeba toś tu licbu argumentow: %s (%s pódane).', 'el': 'το %s παίρνει τα ορίσματα %s (%s δεδομένα).', 'eo': '%s prenas %s argumentojn (%s donitaj).', 'es': '%s toma %s argumentos (se proporcionaron %s).', 'et': '%s võtab %s argumenti (aga anti %s).', 'eu': '%s(e)k %s argumentu hartu ditu (%s emanda).', 'fi': '%s tarvitsee %s argumenttia (%s annettu).', 'fr': '%s prend les arguments %s (%s donné).', 'fy': '%s hat %s arguminten nedich (%s jûn).', 'ga': 'Glacann %s le %s argóint (bhí %s argóint ann).', 'gd': 'Gabhaidh %s %s argamaidean (thug thu seachad %s).', 'gl': '%s toma %s argumentos (%s dados).', 'gug': '%s toma %s argumentos (se proporcionaron %s).', 'gu': '%s એ %s દલીલો લે છે (%s આપેલ છે).', 'he': '%s מקבלת %s ארגומנטים (%s סופקו).', 'hi': '%s लेता %s वितर्क (%s दिया हुआ).', 'hr': '%s ima %s argumente (%s dano).', 'hsb': '%s trjeba tutu ličbu argumentow: %s (%s podate).', 'hu': '%s: %s adatot vár, de %s lett megadva.', 'id': '%s perlu %s argumen (diberikan %s).', 'is': '%s tekur %s viðföng (%s gefið).', 'it': '%s prende %s argomenti (%s dati).', 'ja': '%s は %s 個の引数をとります(%s 個与えられました)。', 'kab': '%s yettawi %s n tiɣira (%s ttunefken-d).', 'kk': '%s үшін %s аргумент керек (%s берілді).', 'km': '%s ចាប់\u200bយក\u200bអាគុយម៉ង់ %s (បាន\u200bផ្ដល់ឲ្យ %s )។', 'kn': '%s ಎನ್ನುವುದು %s ಆರ್ಗ್ಯುಮೆಂಟ್\u200cಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ (%s ಒದಗಿಸಲಾದ).', 'ko': '%s은(는) %s 개의 파라미터를 갖습니다.(%s 제공됨).', 'lo': '%s ໃຊ້ເວລາ %s ການຂັດແຍ້ງ (%s ໄດ້ຮັບ).', 'lt': 'Komandai „%s“ reikia %s argumentų (nurodyta %s).', 'lv': '%s pieņem %s parametrus (nevis %s).', 'ml': '%s, %s ആര്\u200dഗ്രുമെന്റുകള്\u200d സ്വീകരിയ്ക്കുന്നു (%s നല്\u200dകിയിരിയ്ക്കുന്നു).', 'mn': '%s нь %s аргументыг авна (%s өгсөн).', 'mr': '%s %s आर्ग्युमेंट्स (%s दिलेले) प्राप्त करते.', 'nb': '%s tar %s argumenter (%s er angitt).', 'nl': '%s heeft %s argumenten nodig (%s gegeven).', 'nn': '%s tar %s argument (%s er gjevne).', 'oc': '%s pren los arguments %s (%s donat).', 'or': '%s ଟି %s ପ୍ରାଚଳ ନେଇଥାଏ (%s ପ୍ରଦତ୍ତ)।', 'pl': '%s pobiera %s argumenty (%s podane).', 'pt_BR': '%s usa %s argumentos (%s definidos).', 'pt': '%s recebe %s argumentos (indicou %s)', 'ro': '%s dă %s argumente (%s date).', 'ru': '%s принимает %s аргументов (передано %s).', 'sid': '%s tidho %s adhanno (%s uyinoonniha).', 'sk': '%s vyžaduje %s argumentov ( zadaných bolo %s).', 'sl': '%s potrebuje %s argumentov (%s jih je podanih).', 'sq': '%s merr %s argumente (%s të dhëna).', 'sr_Latn': '%s uzima %s argumenata (navedeno %s).', 'sr': '%s узима %s аргумената (наведено %s).', 'sv': '%s tar %s argument (%s givna).', 'szl': '%s pobiyro %s argumynta (%s podane).', 'ta': '%s ஆனது %s மதிப்புருக்களை எடுத்துக்கொள்ளும் (%s கொடுக்கப்பட்டது).', 'te': '%s అనునది %s ఆర్గుమెంట్లు తీసుకొనును (%s యీయబడెను).', 'tr': '%s, %s bağımsız değişken alır (%s verilen).', 'ug': '%s غا %s ئۆزگەرگۈچى زۆرۈر (%s بېرىلگەن).', 'uk': '%s отримує %s аргументів (передано %s).', 'vec': '%s el ciapa %s argomenti (%s dati).', 'zh_CN': '%s 需要 %s 个参数 (已给出 %s 个)。', 'zh_TW': '%s 取用 %s 個引數 (已給 %s 個)。'},
2402'ERR_BLOCK':{'en_US': 'Error (extra or missing spaces at brackets?)', 'af': 'Fout (ekstra of ontbrekende spasies by haakies?)', 'am': 'ስህተት (ተጨማሪ ወይንም በቅንፉ ውስጥ ባዶ ቦታ የለም?)', 'ar': 'خطأ (مسافات إضافية أو مفقودة في الأقواس؟)', 'as': 'ত্ৰুটি (ব্ৰেকেটসমূহত অতিৰিক্ত অথবা সন্ধানহিন স্পেইচ?)', 'ast': 'Error (¿sobren o falten espacios nos paréntesis?)', 'be': 'Памылка (лішнія ці недастатковыя прабелы ў дужках?)', 'bg': 'Грешка (излишни или липсващи интервали при скоби?)', 'bn_IN': 'ত্রুটি (ব্র্যাকেটে অতিরিক্ত বা অনুপস্থিত স্পেস?)', 'br': "Fazi (esaouioù a vank pe a zo re etre ar c'hrommelloù ?)", 'bs': 'Greška (viška ili fali razmaka u ragradama?)', 'ca': "S'ha produït un error (espais extra o omesos als parèntesis?)", 'ca_valencia': "S'ha produït un error (espais extra o omesos als parèntesis?)", 'cy': 'Gwall (bylchau ychwanegol neu goll wrth y cromfachau?)', 'cs': 'Chyba (přebývající nebo chybějící mezery u závorek?)', 'da': 'Fejl (ekstra eller manglende mellemrum ved kantede parenteser?)', 'de': 'Fehler (zusätzliche oder fehlende Leerstelle bei Klammern?)', 'dsb': 'Zmólka (pśidatne abo felujuce prozne znamjenja pla spinkow?)', 'el': 'Σφάλμα (πρόσθετα ή ελλείποντα κενά στις παρενθέσεις;)', 'eo': 'Eraro (ekstra aŭ mankanta spaceto ĉe krampoj?)', 'es': 'Error (¿faltan o sobran espacios en los corchetes?)', 'et': 'Viga (liiga palju või vähe tühikuid sulgude juures?)', 'eu': 'Errorea (zuriuneak soberan edo faltan parentesietan?)', 'fi': 'Virhe (liikaa tai liian vähän välejä sulkumerkkien vieressä?)', 'fr': 'Erreur (espaces supplémentaires ou manquants entre les parenthèses ?)', 'fy': 'Flater (ekstra of ûntbrekkende spaasjes by heakjes?)', 'ga': 'Earráid (spásanna breise nó ar iarraidh in aice leis na lúibíní?)', 'gd': 'Mearachd (cus àitichean no feadhainn a dhìth aig na bracaidean?)', 'gl': 'Erro (espazos extra ou que faltan nas parénteses?)', 'gu': 'ભૂલ (વધારાની અથવા ગેરહાજર જગ્યાઓ કૌંસમાં છે?)', 'he': 'שגיאה (יכול להיות שיש יותר מדי או שאין רווחים עם הסוגריים?)', 'hi': 'त्रुटि (ब्रैकेट में अतिरिक्त या अनुपस्थित स्थान?)', 'hr': 'Greška (ima previše ili nedostaje razmaka u zagradama?)', 'hsb': 'Zmylk (přidatne abo falowace mjezoty pola spinkow?)', 'hu': 'Hiba (hiányzó vagy felesleges szóköz a kapcsos zárójelnél?)', 'id': 'Galat (spasi ekstra atau kurang pada kurung?)', 'is': 'Villa (vantar eða er ofaukið bilum við sviga?)', 'it': 'Errore (spazi aggiuntivi o mancanti alle parentesi?)', 'ja': 'エラー(括弧の辺りにスペースが重複または不足しているかもしれません)', 'kab': 'Tuccḍa (tallunt gar tacciwin tzadneɣ txuṣ?)', 'kk': 'Қате (жақша ішіндегі бос аралықтар артық немесе жетіспейді?)', 'km': 'កំហុស (បាត់\u200b ឬ\u200bមាន\u200bចន្លោះ\u200bបន្ថែម\u200bនៅ\u200bវង់\u200bក្រចក?)', 'kn': 'ದೋಷ (ಆವರಣಗಳಲ್ಲಿ ಹೆಚ್ಚುವರಿ ಅಂತರಗಳು ಇವೆಯೆ ಅಥವ ಕಾಣಿಸುತ್ತಿಲ್ಲವೆ?)', 'ko': '오류 (괄호안에 불필요하게 추가되었거나 누락된 빈칸)', 'lo': 'ເກີດຂໍ້ຜິດພາດ (ຊ່ອງວ່າງທີ່ພິເສດ ຫຼື ຂາດຫາຍໄປຢູ່ໃນວົງເລັບ?)', 'lt': 'Klaida (per daug arba per mažai tarpų skliausteliuose?)', 'lv': 'Kļūda (liekas vai trūkstošas atstarpes pie iekavām?)', 'ml': 'പിശക്', 'mn': 'Алдаа (хаалтанд дутуу эсвэл илүү хоосон зай байна уу?)', 'mr': 'त्रुटी (ब्रॅकेट्सकडील अगाउ किंवा न आढळलेली मोकळी जागा?)', 'nb': 'Feil (ekstra eller manglende mellomrom ved parenteser?)', 'nl': 'Error (extra of ontbrekende spaties bij haakjes?)', 'nn': 'Feil (Kan vera feil bruk av mellomrom ved parentesar)', 'oc': 'Error (espacis suplementaris o mancants entre las parentèsis ?)', 'or': 'ତ୍ରୁଟି (ବନ୍ଧନିଗୁଡ଼ିକରେ ଅତିରିକ୍ତ କିମ୍ବା ଅନୁପସ୍ଥିତ ଖାଲିସ୍ଥାନ ଅଛି?)', 'pl': 'Błąd (nadmiarowe lub brakujące spacje w nawiasach?)', 'pt_BR': 'Erro (há espaços faltando ou a mais nos colchetes?)', 'pt': 'Erro (espaços em falta ou a mais nos parênteses?)', 'ro': 'Eroare (spații sau paranteze în plus sau lipsă?)', 'ru': 'Ошибка (лишние или недостающие пробелы в скобках?)', 'sid': 'Soro (qoqqowubbate aana ledote woy hawamme fooquwa?)', 'sk': 'Chyba (nadbytočné alebo chýbajúce medzery pri zátvorkách?)', 'sl': 'Napaka (odvečni ali manjkajoči presledki pri oklepajih?)', 'sq': 'Gabim (hapësirë që mungon ose ekstra tek kllapat?)', 'sr_Latn': 'Greška (mogući višak ili manjak razmaka uz zagrade?)', 'sr': 'Грешка (могући вишак или мањак размака уз заграде?)', 'sv': 'Fel (för många eller saknade blanksteg vid parenteser?)', 'szl': 'Błōnd (nadmiarowe abo brakujōnce spacyje w nowiasach?)', 'ta': 'பிழை (பிறையடைப்புகளில் இடைவெளிகள் கூடுதலாக அல்லது விடுபட்டுள்ளதா?)', 'te': 'దోషం (బ్రాకెట్ల వద్ద అదనపు లేదా లేని ఖాళీలు వున్నాయా?)', 'tr': 'Hata (köşeli ayraçlarda fazladan veya eksik boşluk?)', 'ug': 'خاتالىق (تىرناقتا بوشلۇق ئاز ياكى كۆپ؟)', 'uk': 'Помилка (надлишок або нестача пробілів у дужках?)', 'vec': 'Eror (spasi in pì o in manco so łe parènteze?)', 'zh_CN': '错误 (括号处多用或少用了空格?)', 'zh_TW': '錯誤 (括弧中有額外空格或遺漏空格?)'},
2403'ERR_KEY':{'en_US': 'Unknown element: %s', 'af': 'Onbekende element: %s', 'am': 'ያልታወቀ አካል: %s', 'ar': 'عنصر مجهول: %s', 'as': 'অজ্ঞাত উপাদান: %s', 'ast': "Desconozse l'elementu: %s", 'be': 'Невядомы элемент: %s', 'bg': 'Непознат елемент: %s', 'bn_IN': 'অজানা স্বত্বা %s', 'br': 'Elfenn dianav : %s', 'bs': 'Nepoznat element: %s', 'ca': "L'element «%s» no és conegut.", 'ca_valencia': "L'element «%s» no és conegut.", 'ckb': 'توخمی نەناسراو: %s', 'cy': 'Elfen anhysbys: %s', 'cs': 'Neznámý prvek: %s', 'da': 'Ukendt element: %s', 'de': 'Unbekanntes Element: %s', 'dsb': 'Njeznaty element: %s', 'el': 'Άγνωστο στοιχείο: %s', 'eo': 'Nekonata elemento: %s', 'es': 'Elemento desconocido: %s', 'et': 'Tundmatu element: %s', 'eu': 'Elementu ezezaguna: %s', 'fi': 'Tuntematon elementti: %s', 'fr': 'Élément inconnu : %s', 'fy': 'Unbekend elemint %s', 'ga': 'Eilimint anaithnid: %s', 'gd': 'Eileamaid neo-aithnichte: %s', 'gl': 'Elemento descoñecido: %s', 'gug': "Elemento ojekuaa'ỹva: %s", 'gu': 'અજ્ઞાત ઘટક: %s', 'he': 'רכיב לא ידוע: %s', 'hi': 'अज्ञात तत्व: %s', 'hr': 'Nepoznati element: %s', 'hsb': 'Njeznaty element: %s', 'hu': 'Ismeretlen elem: %s', 'id': 'Elemen tak diketahui: %s', 'is': 'Óþekkt stak: %s', 'it': 'Elemento sconosciuto: %s', 'ja': '不明な要素: %s', 'kab': 'Aferdis arussin: %s', 'kk': 'Белгісіз элемент: %s', 'km': 'មិន\u200bស្គាល់\u200bធាតុ៖ %s', 'kn': 'ಗೊತ್ತಿರದ ಘಟಕ: %s', 'ko': '알 수 없는 요소: %s', 'lo': 'ອົງປະກອບທີ່ບໍ່ຮູ້ຈັກ: %s', 'lt': 'Nežinomas elementas: %s', 'lv': 'Nezināms elements — %s', 'ml': 'അപരിചിതമായ എലമെന്റ്: %s', 'mn': 'Үл мэдэгдэх элемент: %s', 'mr': 'अपरिचीत एलिमेंट: %s', 'nb': 'Ukjent element: %s', 'nl': 'Onbekend element %s', 'nn': 'Ukjent element: %s', 'oc': 'Element desconegut : %s', 'or': 'ଅଜଣା ଉପାଦାନ: %s', 'pl': 'Nieznany element: %s', 'pt_BR': 'Elemento desconhecido: %s', 'pt': 'Elemento desconhecido: %s', 'ro': 'Element necunoscut: %s', 'ru': 'Неизвестный элемент: %s', 'sid': 'Afaminokki miila: %s', 'sk': 'Neznámy prvok: %s', 'sl': 'Neznan element: %s', 'sq': 'Elementi i panjohur: %s', 'sr_Latn': 'Nepoznati element: %s', 'sr': 'Непознати елемент: %s', 'sv': 'Okänt element: %s', 'szl': 'Niyznōmy elymynt: %s', 'ta': 'தெரியாத கூறு: %s', 'te': 'తెలియని మూలకం: %s', 'tr': 'Bilinmeyen öge: %s', 'ug': 'يوچۇن ئېلېمېنت: %s', 'uk': 'Невідомий елемент: %s', 'vec': 'Ełemento mìa conosùo: %s', 'zh_CN': '未知元素: %s', 'zh_TW': '未知元素:%s'},
2404'ERR_INDEX':{'en_US': 'Index out of range.', 'af': 'Indeks oorskry bereik.', 'am': 'ማውጫው ከተወሰነው ውጪ ነው', 'ar': 'الفهرس خارج المجال.', 'as': 'সূচী বিস্তাৰৰ বাহিৰ।', 'ast': 'Índiz fuera de rangu.', 'be': 'Індэкс па-за абсягам.', 'bg': 'Индекс извън обхвата.', 'bn_IN': 'সূচি মান সীমাবহির্ভূত।', 'br': 'Ibil er maez eus al lijorenn.', 'bs': 'Indeks van opsega.', 'ca': "L'índex és fora de l'interval.", 'ca_valencia': "L'índex és fora de l'interval.", 'ckb': 'پێڕست لە دەرەوەی بوارەکەیە.', 'cy': "Mynegai tu allan o'r ystod.", 'cs': 'Index mimo rozsah.', 'da': 'Indeks uden for tilladt område.', 'de': 'Index außerhalb des Bereichs.', 'dsb': 'Indeks zwenka wobceŕka.', 'el': 'Δείκτης εκτός περιοχής.', 'eo': 'Indekso ekster amplekso.', 'es': 'Índice fuera del intervalo.', 'et': 'Indeks vahemikust väljas.', 'eu': 'Indizea barrutitik kanpo.', 'fi': 'Indeksimuuttuja arvoalueen ulkopuolella.', 'fr': 'Index en dehors de la plage.', 'fy': 'Yndeks bûten berik.', 'ga': 'Innéacs as raon.', 'gd': 'Tha an clàr-amais taobh a-muigh na rainse.', 'gl': 'Índice fóra de intervalo.', 'gu': 'અનુક્રમણિકા વ્યાખ્યાયિત મર્યાદાની બહાર છે.', 'he': 'האינדקס מחוץ לטווח.', 'hi': 'अनुक्रमणिका दायरे से बाहर है.', 'hr': 'Indeks je izvan raspona.', 'hsb': 'Indeks zwonka wobłuka.', 'hu': 'Nem létező elemre hivatkozás.', 'id': 'Indeks di luar rentang.', 'is': 'Vísir er ekki innan skilgreinds sviðs.', 'it': "Indice fuori dall'area.", 'ja': 'インデックスが範囲外です。', 'kab': 'Amatar berra n tegrumma.', 'kk': 'Индекс ауқымнан тыс.', 'km': 'លិបិក្រម\u200bក្រៅ\u200bជួរ។', 'kn': 'ಸೂಚಿಯು ವ್ಯಾಪ್ತಿಯ ಹೊರಗಿದೆ.', 'ko': '범위 외의 인덱스', 'lo': 'ດັດຊະນີອອກຈາກຊ່ວງທີ່ກໍານົດໄວ້.', 'lt': 'Rodyklė už ribų', 'lv': 'Indekss ir ārpus diapazona.', 'ml': 'സൂചിക പരിധിയ്ക്കു് പുറത്തു്', 'mn': 'Индекс хязгаараас хэтэрсэн байна.', 'mr': 'इंडेक्स आउट ऑफ रेंज.', 'nb': 'Indeksen er utenfor området.', 'nl': 'Index buiten gedefinieerd bereik.', 'nn': 'Indeksen er utanfor området.', 'oc': 'Indèx en defòra de la plaja.', 'or': 'ଅନୁକ୍ରମଣିକା ପରିସର ବାହାରେ ଅଛି।', 'pl': 'Indeks poza zakresem.', 'pt_BR': 'Índice fora do intervalo.', 'pt': 'Índice fora do intervalo', 'ro': 'Index în afara intervalului.', 'ru': 'Индекс вне диапазона.', 'sid': 'Hakkageeshshu gobayiidi mashalaqisaancho.', 'sk': 'Index je mimo rozsahu.', 'sl': 'Kazalo je izven območja.', 'sq': 'Vlerë jashtë rrezes.', 'sr_Latn': 'indeksiranje van opsega.', 'sr': 'индексирање ван опсега.', 'sv': 'Indexet ligger utanför intervallet.', 'szl': 'Indeks poza zakresym.', 'ta': 'குறியீடு வரம்பைத் தாண்டியுள்ளது.', 'te': 'విషయసూచిక విస్తృతి బయటవుంది.', 'tr': 'Dizin aralık dışında.', 'ug': 'ئىندېكىس دائىرىدىن ھالقىدى.', 'uk': 'Індекс поза діапазоном.', 'vec': "Ìndeze fora de l'area.", 'zh_CN': '索引越界。', 'zh_TW': '索引超出範圍。'},
2405'ERR_STOP':{'en_US': 'Program terminated:', 'af': 'Program be-eindig:', 'am': 'መተግበሪያው ተቋርጧል :', 'ar': 'توقف البرنامج:', 'as': 'প্ৰগ্ৰাম অন্ত কৰা হল:', 'ast': 'Programa fináu:', 'be': 'Праграма спынена:', 'bg': 'Програмата е прекратена:', 'bn_IN': 'প্রোগ্রাম সাময়িক ভাবে বন্ধ করা হয়েছে:', 'br': 'Goulev arsavet :', 'bs': 'Program okončan:', 'ca': 'El programa ha acabat:', 'ca_valencia': 'El programa ha acabat:', 'ckb': 'بەرنامە داخرا:', 'cy': 'Rhaglen wedi dod i ben:', 'cs': 'Program ukončen:', 'da': 'Programmet afbrudt:', 'de': 'Programm beendet:', 'dsb': 'Program skóńcony:', 'el': 'Το πρόγραμμα τερματίστηκε:', 'eo': 'Programo haltita:', 'es': 'Programa finalizado:', 'et': 'Programm lõpetatud:', 'eu': 'Programa eten da:', 'fi': 'Ohjelma on lopetettu:', 'fr': 'Programme arrêté :', 'fy': 'Programma ôfbrútsen:', 'ga': 'Stopadh an ríomhchlár:', 'gd': "Chaidh crìoch a chur air a' phrògram:", 'gl': 'Programa pechado:', 'gu': 'કાર્યક્રમનો અંત આવ્યો:', 'he': 'התכנית חוסלה:', 'hi': 'प्रोग्राम बाहर हुआ:', 'hr': 'Program je završen:', 'hsb': 'Program skónčeny:', 'hu': 'A futás leállítva:', 'id': 'Program diakhiri:', 'is': 'Forritið hætti:', 'it': 'Programma terminato:', 'ja': 'プログラムが終了しました:', 'kab': 'Ahil ibedd:', 'kk': 'Бағдарлама үзілді:', 'km': 'បាន\u200bបញ្ចប់\u200bកម្មវិធី៖', 'kn': 'ಪ್ರೋಗ್ರಾಂ ಅಂತ್ಯಗೊಂಡಿದೆ:', 'ko': '프로그램이 종료됨:', 'lo': 'ໂປຣແກຣມຖືກຍົກເລີກ:', 'lt': 'Programos darbas nutrauktas:', 'lv': 'Programma pārtraukta:', 'ml': 'പ്രോഗ്രാം നിര്\u200dത്തിയിരിയ്ക്കുന്നു:', 'mn': 'Програм зогссон:', 'mr': 'प्रोग्राम बंद केले:', 'nb': 'Programmet ble avsluttet:', 'nl': 'Programma afgebroken:', 'nn': 'Programmet vart avslutta fordi', 'oc': 'Programa arrestat :', 'or': 'ପ୍ରଗ୍ରାମ ସମାପ୍ତ ହୋଇଛି:', 'pl': 'Program zakończony:', 'pt_BR': 'Programa encerrado:', 'pt': 'Programa terminado:', 'ro': 'Programul s-a terminat:', 'ru': 'Программа остановлена:', 'sid': 'Pirogirame gooffino:', 'sk': 'Program ukončený:', 'sl': 'Program se je zaključil:', 'sq': 'Programi përfundoi:', 'sr_Latn': 'Program prekinut:', 'sr': 'Програм прекинут:', 'sv': 'Program avslutades:', 'szl': 'Program zakōńczōny:', 'ta': 'நிரல் முடிக்கப்பட்டது:', 'te': 'ప్రోగ్రామ్ అంతమైను:', 'tr': 'Program sonlandırıldı:', 'ug': 'پىروگرامما توختىدى:', 'uk': 'Програму зупинено:', 'vec': 'Programa terminà:', 'zh_CN': '程序已中断:', 'zh_TW': '程式已中止:'},
2406'ERR_MAXRECURSION':{'en_US': 'maximum recursion depth (%d) exceeded.', 'af': 'maksimum rekursie diepte (%d) oorskry.', 'am': 'ከፍተኛውን መደጋገሚያ መጠን (%d) አልፏል', 'ar': 'تجاوزتُ الحد الأقصى للعمق التكراري (%d)', 'as': 'সৰ্বাধিক ৰিকাৰ্চন গভিৰতা (%d) অতিক্ৰম হৈছে।', 'ast': 'fondura máxima recursiva (%d) perpasada.', 'be': 'перавышана максімальная глыбіня рэкурсіі (%d).', 'bg': 'надхвърлена е максималната дълбочина на рекурсия (%d).', 'bn_IN': 'সর্বাধিক রিকারসিয়ন ডেপথ (%d) ছাড়িয়ে গেছে।', 'br': "aet eo dreist an donder (%d) askizañ uc'hek .", 'bs': 'maksimalna dubina rekurzija (%d) premašena.', 'ca': "s'ha superat la profunditat màxima de recursivitat (%d).", 'ca_valencia': "s'ha superat la profunditat màxima de recursivitat (%d).", 'cy': "tu hwnt i'r uchafswm dychweliad dyfnder (%d).", 'cs': 'překročena maximální hloubka rekurze (%d).', 'da': 'maksimale gennemløb (%d) blev overskredet.', 'de': 'Maximale Rekursionstiefe (%d) erreicht.', 'dsb': 'Maksimalna rekursijowa dłymokosć (%d) pśekšocona.', 'el': 'το μέγιστο βάθος αναδρομής (%d) ξεπεράστηκε.', 'eo': 'superis la maksimuman rekuran profundon (%d).', 'es': 'se ha superado la profundidad máxima de recursividad (%d).', 'et': 'ületati suurim rekursioonisügavus (%d).', 'eu': 'gehieneko errekurtsio-sakonera (%d) gainditu da.', 'fi': 'suurin sallittu rekursion syvyys (%d) on saavutettu.', 'fr': 'profondeur (%d) de récursion maximum dépassée.', 'fy': 'maksimum fan rekursiedjipte (%d) oer gien.', 'ga': 'sáraíodh an uasdoimhneacht athchúrsála (%d).', 'gd': 'barrachd ath-chùrsaidh na tha ceadaichte (%d).', 'gl': 'máxima profundidade recursiva (%d) sobrepasada.', 'gu': 'મહત્તમ રિકર્ઝન ઊંડાઈ (%d) ઓળંગાઈ.', 'he': 'הגעת לעומק הנסיגה/רקורסיה (%d) המרבי.', 'hi': 'अधिकतम रिकर्सन गहराई (%d) बढ़ गया.', 'hr': 'premašena je maksimalna dubina rekurzije (%d).', 'hsb': 'Maksimalna rekursijna hłubokosć (%d) překročena.', 'hu': 'Elérve az újrahívási korlát (%d).', 'id': 'kedalaman rekursi maksimum (%d) terlampaui.', 'is': 'hámarki endurkvæmrar dýptar (%d) náð.', 'it': 'profondità ricorsiva massima (%d) superata.', 'ja': '再帰の深さが最大値(%d)を越えました。', 'kab': 'telqey (%d) n usniles tafellayt tɛedda.', 'kk': 'рекурсияның максималды тереңдігінен (%d) асып кеттік.', 'km': 'ជម្រៅ\u200bកើត\u200bឡើង\u200b\u200bដដែល\u200bអតិបរមា (%d) បាន\u200bលើស។', 'kn': 'ಗರಿಷ್ಟ ಪುನರಾವರ್ತನಾ ಆಳವು (%d) ಮೀರಿದೆ.', 'ko': '최대 재귀 수준(%d)을 초과하였습니다.', 'lo': 'ຄວາມເລີກສູງສຸດຂອງການທັບຊ້ອນ (%d) ເກີນ.', 'lt': 'viršytas didžiausias rekursijos lygis (%d).', 'lv': 'pārsniegts maksimālais rekursijas dziļums (%d).', 'ml': 'ഏറ്റവും കൂടിയ റിക്കര്\u200dഷന്\u200d വ്യാപ്തി (%d) വര്\u200dദ്ധിച്ചിരിയ്ക്കുന്നു.', 'mn': 'давталтын дээд хэмжээ (%d) хэтэрсэн байна.', 'mr': 'मॅक्सिमम रिकर्शन डेप्थ (%d) वाढले.', 'nb': 'maksimum rekursjonsdypde (%d) overskredet.', 'nl': 'maximum van recursiediepte (%d) overschreden.', 'nn': 'maksimum rekursjonsdjupn (%d) er overskride.', 'oc': 'prigondor (%d) de recursion maximum despassat.', 'or': 'ସର୍ବାଧିକ ପୁନଃପୌନିକ ଘଭୀରତା (%d) ଅତିକ୍ରମ କରିଛି।', 'pl': 'przekroczono maksymalną głębokość (%d) rekursji.', 'pt_BR': 'profundidade máxima de recursão (%d) excedida.', 'pt': 'profundidade máxima (%d) excedida', 'ro': 'Numărul maxim de recursii (%d) depășit.', 'ru': 'превышена максимальная глубина рекурсии (%d).', 'sid': 'jawiidi wirro higate linxe (%d) roortino.', 'sk': 'bola prekročená maximálna hĺbka rekurzie (%d).', 'sl': 'največja globina rekurzije (%d) presežena.', 'sq': 'thellësia maksimale e rekursionit (%d) u tejkalua.', 'sr_Latn': 'Prekoračena je maksimalna dubina rekurzije(%d).', 'sr': 'Прекорачена је максимална дубина рекурзије(%d).', 'sv': 'maximalt rekursionsdjup (%d) har överskridits.', 'szl': 'Maksymalny głymbokość (%d) rekursyje była przekroczōno.', 'ta': 'அதிகபட்ச மீள் நிகழ்வு அளவு (%d) மீறப்பட்டது.', 'te': 'గరిష్ట రికర్షన్ డెప్త్ (%d) మించెను.', 'tr': 'en çok yineleme derinliği (%d) aşıldı.', 'ug': 'ئەڭ يۇقىرى قايتىلاش چوڭقۇرلۇقى (%d) دىن ئېشىپ كەتتى.', 'uk': 'перевищено найбільшу глибину рекурсії (%d).', 'vec': 'suparà ła profondità recorsiva màsima (%d).', 'zh_CN': '已超出最大递归深度 (%d)。', 'zh_TW': '已超出最大遞迴深度 (%d)。'},
2407'ERR_MEMORY':{'en_US': 'not enough memory.', 'af': 'Onvoldoende geheue.', 'am': 'በቂ memory የለም', 'ar': 'لا ذاكرة كافية.', 'as': 'পৰ্যাপ্ত মেমৰি নাই।', 'ast': 'nun hai memoria bastante.', 'be': 'недастаткова памяці.', 'bg': 'недостатъчна памет.', 'bn_IN': 'অপ্রতুল মেমরি।', 'br': 'memor re skort.', 'bs': 'nema dovoljnomemorije.', 'ca': 'no hi ha prou memòria.', 'ca_valencia': 'no hi ha prou memòria.', 'ckb': 'بیرگەی پێویست نیە.', 'cy': 'dim digon o gof.', 'cs': 'nedostatek paměti.', 'da': 'ikke nok hukommelse', 'de': 'Nicht genügend Arbeitsspeicher.', 'dsb': 'nic dosć składowaka.', 'el': 'ανεπαρκής μνήμη.', 'eo': 'nesufiĉa memoro.', 'es': 'no hay memoria suficiente.', 'et': 'pole piisavalt mälu.', 'eu': 'nahiko memoriarik ez.', 'fi': 'muisti ei riitä.', 'fr': 'mémoire insuffisante.', 'fy': 'net genôch ûnthâld.', 'ga': 'cuimhne ídithe.', 'gd': 'chan eil cuimhne gu leòr ann.', 'gl': 'non hai memoria suficiente.', 'gu': 'પૂરતી મેમરી નથી.', 'he': 'אין די זכרון.', 'hi': 'स्मृति प्रर्याप्त नहीं.', 'hr': 'nema dovoljno memorije.', 'hsb': 'njeje dosć składa.', 'hu': 'Nincs elég memória.', 'id': 'Apakah Anda ingin menjalankan dokumen teks ini?', 'is': 'ekki nægt minni.', 'it': 'memoria insufficiente.', 'ja': 'メモリーが足りません。', 'kab': 'Txuṣ tkatut.', 'ka': 'არ არის საკმარისი მეხსიერება.', 'kk': 'жады жеткіліксіз.', 'km': 'អង្គ\u200bចងចាំ\u200bមិន\u200bគ្រប់គ្រាន់\xa0។', 'kn': 'ಸಾಕಷ್ಟು ಸ್ಮೃತಿ ಇಲ್ಲ.', 'ko': '메모리가 부족합니다.', 'lo': 'ໜວ່ຍຄວາມຈຳບໍ່ພຽງພໍ.', 'lt': 'nepakanka atminties.', 'lv': 'nepietiek atmiņas.', 'ml': 'ആവശ്യമായ മെമ്മറി ലഭ്യമല്ല.', 'mn': 'санах ой хүрэлцэхгүй байна.', 'mr': 'पुरेशी मेमरि नाही.', 'my': 'မှတ်ဉာဏ်မလုံလောက်ပါ။', 'nb': 'ikke nok minne.', 'ne': 'पर्याप्त स्मृति छैन ।', 'nl': 'onvoldoende geheugen.', 'nn': 'det ikkje er nok minne.', 'oc': 'memòria insufisenta.', 'or': 'ଯଥେଷ୍ଟ ସ୍ମୃତି ସ୍ଥାନ ନାହିଁ।', 'pa_IN': 'ਲੋੜੀਂਦੀ ਮੈਮੋਰੀ ਨਹੀਂ ਹੈ', 'pl': 'za mało pamięci.', 'pt_BR': 'memória insuficiente.', 'pt': 'memória insuficiente', 'ro': 'Memorie insuficientă.', 'ru': 'недостаточно памяти.', 'sid': 'kkitinnokki qaaggo.', 'si': 'මතකය ප්\u200dරමාණවත් නැත.', 'sk': 'nedostatok pamäte.', 'sl': 'Ni dovolj pomnilnika.', 'sq': 'memorie të pamjaftueshme.', 'sr_Latn': 'Nema dovoljno memorije.', 'sr': 'Нема довољно меморије.', 'sv': 'otillräckligt minne.', 'szl': 'za mało pamiyńci.', 'ta': 'நினைவகம் போதவில்லை.', 'te': 'సరిపోవునంత మెమొరీ లేదు.', 'tr': 'yeterli bellek yok.', 'ug': 'يېتەرلىك ئەسلەك يوق.', 'uk': "недостатньо пам'яті.", 'vec': 'Ła memoria no ła basta mìa.', 'vi': 'Không đủ bộ nhớ.', 'zh_CN': '内存不足。', 'zh_TW': '記憶體不足。'},
2408'ERR_NOTAPROGRAM':{'en_US': 'Do you want to run this text document?', 'af': 'Wil u die teksdokument uitvoer?', 'am': 'ይህን የጽሁፍ ሰነድ ማስኬድ ይፈልጋሉ?', 'ar': 'أتريد تشغيل هذا المستند النصّيّ؟', 'as': 'আপুনি এই লিখনী দস্তাবেজ চলাব বিচাৰে নে?', 'ast': '¿Quier executar esti documentu de testu?', 'be': 'Выканаць гэты тэкставы дакумент?', 'bg': 'Желаете ли да се изпълни този текстов документ?', 'bn_IN': 'অাপনি কি এই পাঠ্য নথি চালাতে চান?', 'br': "Ha fellout a ra deoc'h erounit an teul mod testenn-mañ ?", 'bs': 'Da li želite pokrenuti ovaj tekstualni dokument?', 'ca': 'Voleu executar aquest document de text?', 'ca_valencia': 'Voleu executar aquest document de text?', 'ckb': 'دەتەوێت دەقەکانی ناو ئەم بەڵگەنامەیە کارپێبکەیت؟', 'cy': 'Hoffech chi redeg y ddogfen testun hon?', 'cs': 'Přejete si spustit tento textový dokument?', 'da': 'Ønsker du at køre dette tekstdokument?', 'de': 'Möchten Sie dieses Textdokument ausführen?', 'dsb': 'Cośo toś ten tekstowy dokument wuwjasć?', 'el': 'Θέλετε να τρέξετε αυτό το έγγραφο κειμένου;', 'eo': 'Ĉu vi volas ruli ĉi tiun dokumenton?', 'es': '¿Quiere ejecutar este documento de texto?', 'et': 'Kas soovid seda tekstidokumenti käivitada?', 'eu': 'Testu-dokumentu hau exekutatu nahi duzu?', 'fi': 'Haluatko suorittaa tämän tekstiasiakirjan?', 'fr': 'Souhaitez-vous exécuter ce document texte ?', 'fy': 'Wolle jo it tekstdokumint útfiere?', 'ga': 'An bhfuil fonn ort an cháipéis téacs a chur ar siúl?', 'gd': 'A bheil thu airson an sgrìobhainn teacsa seo a ruith?', 'gl': 'Quere executar este documento de texto?', 'gug': "¿Remomba'apo sépa ko documento moñe'ẽrãgui?", 'gu': 'શું તમે આ લખાણ દસ્તાવેજને ચલાવવા માંગો છો?', 'he': 'האם ברצונך להריץ מסמך טקסט זה?', 'hi': 'क्या आप इस पाठ दस्तावेज़ को चलाना चाहते हैं?', 'hr': 'Želite li pokrenuti ovaj tekstualni dokument?', 'hsb': 'Chceće tutón tekstowy dokument wuwjesć?', 'hu': 'Szeretné futtatni ezt a szöveges dokumentumot?', 'id': 'Apakah Anda ingin menjalankan dokumen teks ini?', 'is': 'Viltu keyra þetta textaskjal?', 'it': 'Vuoi eseguire questo documento di testo?', 'ja': 'この文書ドキュメントをプログラムとして実行しますか?', 'kab': 'Tebɣiḍ ad tselkemeḍ isemli-agi aḍris?', 'kk': 'Бұл мәтіндік құжатты орындау керек пе?', 'km': 'តើ\u200bអ្នក\u200bចង់\u200bដំណើរការ\u200bឯកសារ\u200bនេះ?', 'kn': 'ನೀವು ಈ ಪಠ್ಯ ದಸ್ತಾವೇಜನ್ನು ಚಲಾಯಿಸಲು ಬಯಸುವಿರಾ?', 'ko': '이 텍스트 문서에서 실행하시겠습니까?', 'lo': 'ທ່ານຕ້ອງການດໍາເນີນການເອີ້ນໃຊ້ເອກະສານຂໍ້ຄວາມນີ້ ຫຼື ບໍ່?', 'lt': 'Ar norite vykdyti šį teksto dokumentą?', 'lv': 'Vai vēlaties izpildīt šo teksta dokumentu?', 'ml': 'നിങ്ങള്\u200dക്കു് ഈ രേഖ നടപ്പിലാക്കണമോ?', 'mn': 'Та энэ текст документийг ажиллуулахыг хүсч байна уу?', 'mr': 'तुम्हाला हे मजकूर दस्तऐवज चालवायचे?', 'nb': 'Vil du kjøre dette tekstdokumentet?', 'nl': 'Wilt u dit tekstdocument uitvoeren?', 'nn': 'Vil du køyra dette tekstdokumentet?', 'oc': 'Volètz executar aqueste document tèxte ?', 'or': 'ଆପଣ ଏହି ପାଠ୍ଯ ଦଲିଲ ଚଲାଇବାକୁ ଚାହୁଁଛନ୍ତି କି?', 'pl': 'Czy na pewno chcesz uruchomić ten dokument tekstowy?', 'pt_BR': 'Deseja executar este documento de texto?', 'pt': 'Deseja executar este documento de texto?', 'ro': 'Doriți să rulați acest document text?', 'ru': 'Выполнить этот текстовый документ?', 'sid': 'Tenne borrote bortaje harisa hasiratto?', 'sk': 'Spustiť tento textový dokument?', 'sl': 'Ali želite zagnati ta besedilni dokument?', 'sq': 'A doni ta ekzekutoni këtë dokument tekst?', 'sr_Latn': 'Želite li da izvršite naredbe iz dokumenta?', 'sr': 'Желите ли да извршите наредбе из документа?', 'sv': 'Vill du köra detta textdokument?', 'szl': 'Na isto chcesz ôtworzić tyn dokumynt tekstowy?', 'ta': 'இந்த உரை ஆவணத்தை இயக்க வேண்டுமா?', 'te': 'మీరు యీ పాఠం పత్రమును నడుపాలి అనుకొనుచున్నారా?', 'tr': 'Bu metin belgesini çalıştırmak istiyor musunuz?', 'ug': 'بۇ تېكىست پۈتۈكنى ئىجرا قىلامسىز؟', 'uk': 'Виконати цей текстовий документ?', 'vec': "Vuto far partir 'sto documento de testo?", 'zh_CN': '是否希望运行该文本文档?', 'zh_TW': '您是否要執行這份文字文件?'},
2409}
def __init__(self, code)
Definition: LibreLogo.py:488
def initialize(self)
Definition: LibreLogo.py:174
def __init__(self, doc)
Definition: LibreLogo.py:159
def right(arg=None)
Definition: LibreLogo.py:743
def __fontstyle__(w)
Definition: LibreLogo.py:1529
def create_svg_animation(m)
Definition: LibreLogo.py:1753
def sleep(t)
Definition: LibreLogo.py:1493
def goforward(arg=None)
Definition: LibreLogo.py:753
def create_valid_svg_file(filename)
Definition: LibreLogo.py:1764
def __gendots__(n)
Definition: LibreLogo.py:251
def __dots__(n, pos, dx, dy, r=-1, q=0)
Definition: LibreLogo.py:1001
def position(n=-1)
Definition: LibreLogo.py:1726
def __zoom__()
Definition: LibreLogo.py:1031
def __gotoline__(n)
Definition: LibreLogo.py:2255
def __splitcolor__(c, shape=None, angle=None)
Definition: LibreLogo.py:1592
def __linestyle__(s)
Definition: LibreLogo.py:1572
def to_unicode(s)
Definition: LibreLogo.py:387
def __decodestring__(m)
Definition: LibreLogo.py:610
def __concatenation__(r)
Definition: LibreLogo.py:1998
def penjoint(n=-1)
Definition: LibreLogo.py:1654
def __locname__(name, l=-1)
Definition: LibreLogo.py:390
def turtlehome()
Definition: LibreLogo.py:666
def to_ascii(s)
Definition: LibreLogo.py:384
def __trace__()
Definition: LibreLogo.py:15
def __removeshape__(shapename)
Definition: LibreLogo.py:1514
def __unlock__(all_levels)
Definition: LibreLogo.py:845
def fontheight(n=-1)
Definition: LibreLogo.py:1850
def hideturtle()
Definition: LibreLogo.py:701
def Print(s)
Definition: LibreLogo.py:353
def __getshape__(shapename)
Definition: LibreLogo.py:927
def label(st)
Definition: LibreLogo.py:1292
def __get_time__()
Definition: LibreLogo.py:484
def __getprop__(name, value)
Definition: LibreLogo.py:242
def MessageBox(parent, message, title, msgtype="messbox", buttons=__OK__)
Definition: LibreLogo.py:361
def pagesize(n=-1)
Definition: LibreLogo.py:659
def __string__(s, decimal=None)
Definition: LibreLogo.py:335
def pencolor(n=-1)
Definition: LibreLogo.py:1619
def forward(n)
Definition: LibreLogo.py:974
def __go__(shapename, n, dot=False, preciseAngle=-1)
Definition: LibreLogo.py:1045
def __boxshape__(shapetype, l)
Definition: LibreLogo.py:1194
def __pen__(n)
Definition: LibreLogo.py:680
def fontweight(n=-1)
Definition: LibreLogo.py:1856
def __getdocument__()
Definition: LibreLogo.py:263
def pensize(n=-1)
Definition: LibreLogo.py:1628
def __draw__(d, count=True)
Definition: LibreLogo.py:1015
def heading(deg=-1, go=False)
Definition: LibreLogo.py:947
def fontfamily(s=-1)
Definition: LibreLogo.py:1862
def fillstyle(s)
Definition: LibreLogo.py:1583
def __float__(x)
Definition: LibreLogo.py:1843
def __setlang__()
Definition: LibreLogo.py:776
def __decodestring2__(m)
Definition: LibreLogo.py:613
def __encodestring__(m)
Definition: LibreLogo.py:601
def __visible__(shape, visible=-1)
Definition: LibreLogo.py:693
def __initialize__()
Definition: LibreLogo.py:619
def __cs__(select=True)
Definition: LibreLogo.py:905
def __loadlang__(lang, a)
Definition: LibreLogo.py:1876
def fillcolor(n=-1)
Definition: LibreLogo.py:1676
def __get_HTML_format__(orig_st)
Definition: LibreLogo.py:1321
def gobackward(arg=None)
Definition: LibreLogo.py:763
def rectangle(l)
Definition: LibreLogo.py:1258
def stop(arg=None)
Definition: LibreLogo.py:858
def fontcolor(n=-1)
Definition: LibreLogo.py:1712
def __l12n__(lng)
Definition: LibreLogo.py:20
def __decodecomment__(m)
Definition: LibreLogo.py:616
def rotate(shapename, deg)
Definition: LibreLogo.py:969
def turnright(deg)
Definition: LibreLogo.py:944
def __groupend__(name="")
Definition: LibreLogo.py:1781
def __groupstart__(name="")
Definition: LibreLogo.py:1740
def left(arg=None)
Definition: LibreLogo.py:733
def __fillit__(filled=True)
Definition: LibreLogo.py:1125
def penstyle(n=-1)
Definition: LibreLogo.py:1639
def Random(r)
Definition: LibreLogo.py:378
def __color__(c)
Definition: LibreLogo.py:1538
def backward(n)
Definition: LibreLogo.py:994
def __checkhalt__()
Definition: LibreLogo.py:898
def commandline(arg=None, arg2=None)
Definition: LibreLogo.py:773
def text(shape, orig_st)
Definition: LibreLogo.py:1428
def fonttransparency(n=-1)
Definition: LibreLogo.py:1718
def __encodecomment__(m)
Definition: LibreLogo.py:606
def __l2p__(i, par, insub, inarray)
Definition: LibreLogo.py:2010
def pencap(n=-1)
Definition: LibreLogo.py:1666
def showturtle()
Definition: LibreLogo.py:715
def __getcursor__(fulltext)
Definition: LibreLogo.py:398
def ellipse(l)
Definition: LibreLogo.py:1240
def run(arg=None, arg2=-1)
Definition: LibreLogo.py:792
def filltransparency(n=-1)
Definition: LibreLogo.py:1690
def __fontweight__(w)
Definition: LibreLogo.py:1520
def __lefthang__(shape)
Definition: LibreLogo.py:1038
def pentransparency(n=-1)
Definition: LibreLogo.py:1704
def turnleft(deg)
Definition: LibreLogo.py:941
def __is_alive__()
Definition: LibreLogo.py:598
def __angle__(deg)
Definition: LibreLogo.py:936
def point()
Definition: LibreLogo.py:1187
def __translate__(arg=None)
Definition: LibreLogo.py:411
def __dispatcher__(s, properties=(), doc=0)
Definition: LibreLogo.py:919
def home(arg=None)
Definition: LibreLogo.py:865
def Input(s)
Definition: LibreLogo.py:273
def __compil__(s)
Definition: LibreLogo.py:2088
def clearscreen(arg=None)
Definition: LibreLogo.py:883
def fontstyle(n=-1)
Definition: LibreLogo.py:1870
def __componentcolor__(c)
Definition: LibreLogo.py:1613
def __int__(x)
Definition: LibreLogo.py:1838
def getComponentContext()
def systemPathToFileUrl(systemPath)
def fileUrlToSystemPath(url)