Internationalize the main menu.
parent
4f04406121
commit
529e1bfd63
|
@ -7,12 +7,420 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: SolveSpace 3.0\n"
|
||||
"Report-Msgid-Bugs-To: whitequark@whitequark.org\n"
|
||||
"POT-Creation-Date: 2017-01-05 10:32+0000\n"
|
||||
"POT-Creation-Date: 2017-01-05 10:37+0000\n"
|
||||
"PO-Revision-Date: 2017-01-05 10:30+0000\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: en_US\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ASCII\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:29
|
||||
msgid "&File"
|
||||
msgstr "&File"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:30
|
||||
msgid "&New"
|
||||
msgstr "&New"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:31
|
||||
msgid "&Open..."
|
||||
msgstr "&Open..."
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:32
|
||||
msgid "Open &Recent"
|
||||
msgstr "Open &Recent"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:33
|
||||
msgid "&Save"
|
||||
msgstr "&Save"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:34
|
||||
msgid "Save &As..."
|
||||
msgstr "Save &As..."
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:36
|
||||
msgid "Export &Image..."
|
||||
msgstr "Export &Image..."
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:37
|
||||
msgid "Export 2d &View..."
|
||||
msgstr "Export 2d &View..."
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:38
|
||||
msgid "Export 2d &Section..."
|
||||
msgstr "Export 2d &Section..."
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:39
|
||||
msgid "Export 3d &Wireframe..."
|
||||
msgstr "Export 3d &Wireframe..."
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:40
|
||||
msgid "Export Triangle &Mesh..."
|
||||
msgstr "Export Triangle &Mesh..."
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:41
|
||||
msgid "Export &Surfaces..."
|
||||
msgstr "Export &Surfaces..."
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:42
|
||||
msgid "Im&port..."
|
||||
msgstr "Im&port..."
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:45
|
||||
msgid "E&xit"
|
||||
msgstr "E&xit"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:48
|
||||
msgid "&Edit"
|
||||
msgstr "&Edit"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:49
|
||||
msgid "&Undo"
|
||||
msgstr "&Undo"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:50
|
||||
msgid "&Redo"
|
||||
msgstr "&Redo"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:51
|
||||
msgid "Re&generate All"
|
||||
msgstr "Re&generate All"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:53
|
||||
msgid "Snap Selection to &Grid"
|
||||
msgstr "Snap Selection to &Grid"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:54
|
||||
msgid "Rotate Imported &90°"
|
||||
msgstr "Rotate Imported &90°"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:56
|
||||
msgid "Cu&t"
|
||||
msgstr "Cu&t"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:57
|
||||
msgid "&Copy"
|
||||
msgstr "&Copy"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:58
|
||||
msgid "&Paste"
|
||||
msgstr "&Paste"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:59
|
||||
msgid "Paste &Transformed..."
|
||||
msgstr "Paste &Transformed..."
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:60
|
||||
msgid "&Delete"
|
||||
msgstr "&Delete"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:62
|
||||
msgid "Select &Edge Chain"
|
||||
msgstr "Select &Edge Chain"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:63
|
||||
msgid "Select &All"
|
||||
msgstr "Select &All"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:64
|
||||
msgid "&Unselect All"
|
||||
msgstr "&Unselect All"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:66
|
||||
msgid "&View"
|
||||
msgstr "&View"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:67
|
||||
msgid "Zoom &In"
|
||||
msgstr "Zoom &In"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:68
|
||||
msgid "Zoom &Out"
|
||||
msgstr "Zoom &Out"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:69
|
||||
msgid "Zoom To &Fit"
|
||||
msgstr "Zoom To &Fit"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:71
|
||||
msgid "Align View to &Workplane"
|
||||
msgstr "Align View to &Workplane"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:72
|
||||
msgid "Nearest &Ortho View"
|
||||
msgstr "Nearest &Ortho View"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:73
|
||||
msgid "Nearest &Isometric View"
|
||||
msgstr "Nearest &Isometric View"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:74
|
||||
msgid "&Center View At Point"
|
||||
msgstr "&Center View At Point"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:76
|
||||
msgid "Show Snap &Grid"
|
||||
msgstr "Show Snap &Grid"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:77
|
||||
msgid "Use &Perspective Projection"
|
||||
msgstr "Use &Perspective Projection"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:80
|
||||
msgid "Show Menu &Bar"
|
||||
msgstr "Show Menu &Bar"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:82
|
||||
msgid "Show &Toolbar"
|
||||
msgstr "Show &Toolbar"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:83
|
||||
msgid "Show Property Bro&wser"
|
||||
msgstr "Show Property Bro&wser"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:85
|
||||
msgid "Dimensions in &Inches"
|
||||
msgstr "Dimensions in &Inches"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:86
|
||||
msgid "Dimensions in &Millimeters"
|
||||
msgstr "Dimensions in &Millimeters"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:89
|
||||
msgid "&Full Screen"
|
||||
msgstr "&Full Screen"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:92
|
||||
msgid "&New Group"
|
||||
msgstr "&New Group"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:93
|
||||
msgid "Sketch In &3d"
|
||||
msgstr "Sketch In &3d"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:94
|
||||
msgid "Sketch In New &Workplane"
|
||||
msgstr "Sketch In New &Workplane"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:96
|
||||
msgid "Step &Translating"
|
||||
msgstr "Step &Translating"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:97
|
||||
msgid "Step &Rotating"
|
||||
msgstr "Step &Rotating"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:99
|
||||
msgid "E&xtrude"
|
||||
msgstr "E&xtrude"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:100
|
||||
msgid "&Lathe"
|
||||
msgstr "&Lathe"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:102
|
||||
msgid "Link / Assemble..."
|
||||
msgstr "Link / Assemble..."
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:103
|
||||
msgid "Link Recent"
|
||||
msgstr "Link Recent"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:105
|
||||
msgid "&Sketch"
|
||||
msgstr "&Sketch"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:106
|
||||
msgid "In &Workplane"
|
||||
msgstr "In &Workplane"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:107
|
||||
msgid "Anywhere In &3d"
|
||||
msgstr "Anywhere In &3d"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:109
|
||||
msgid "Datum &Point"
|
||||
msgstr "Datum &Point"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:110
|
||||
msgid "&Workplane"
|
||||
msgstr "&Workplane"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:112
|
||||
msgid "Line &Segment"
|
||||
msgstr "Line &Segment"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:113
|
||||
msgid "C&onstruction Line Segment"
|
||||
msgstr "C&onstruction Line Segment"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:114
|
||||
msgid "&Rectangle"
|
||||
msgstr "&Rectangle"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:115
|
||||
msgid "&Circle"
|
||||
msgstr "&Circle"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:116
|
||||
msgid "&Arc of a Circle"
|
||||
msgstr "&Arc of a Circle"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:117
|
||||
msgid "&Bezier Cubic Spline"
|
||||
msgstr "&Bezier Cubic Spline"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:119
|
||||
msgid "&Text in TrueType Font"
|
||||
msgstr "&Text in TrueType Font"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:121
|
||||
msgid "To&ggle Construction"
|
||||
msgstr "To&ggle Construction"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:122
|
||||
msgid "Tangent &Arc at Point"
|
||||
msgstr "Tangent &Arc at Point"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:123
|
||||
msgid "Split Curves at &Intersection"
|
||||
msgstr "Split Curves at &Intersection"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:125
|
||||
msgid "&Constrain"
|
||||
msgstr "&Constrain"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:126
|
||||
msgid "&Distance / Diameter"
|
||||
msgstr "&Distance / Diameter"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:127
|
||||
msgid "Re&ference Dimension"
|
||||
msgstr "Re&ference Dimension"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:128
|
||||
msgid "A&ngle"
|
||||
msgstr "A&ngle"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:129
|
||||
msgid "Reference An&gle"
|
||||
msgstr "Reference An&gle"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:130
|
||||
msgid "Other S&upplementary Angle"
|
||||
msgstr "Other S&upplementary Angle"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:131
|
||||
msgid "Toggle R&eference Dim"
|
||||
msgstr "Toggle R&eference Dim"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:133
|
||||
msgid "&Horizontal"
|
||||
msgstr "&Horizontal"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:134
|
||||
msgid "&Vertical"
|
||||
msgstr "&Vertical"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:136
|
||||
msgid "&On Point / Curve / Plane"
|
||||
msgstr "&On Point / Curve / Plane"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:137
|
||||
msgid "E&qual Length / Radius / Angle"
|
||||
msgstr "E&qual Length / Radius / Angle"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:138
|
||||
msgid "Length Ra&tio"
|
||||
msgstr "Length Ra&tio"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:139
|
||||
msgid "Length Diff&erence"
|
||||
msgstr "Length Diff&erence"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:140
|
||||
msgid "At &Midpoint"
|
||||
msgstr "At &Midpoint"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:141
|
||||
msgid "S&ymmetric"
|
||||
msgstr "S&ymmetric"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:142
|
||||
msgid "Para&llel / Tangent"
|
||||
msgstr "Para&llel / Tangent"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:143
|
||||
msgid "&Perpendicular"
|
||||
msgstr "&Perpendicular"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:144
|
||||
msgid "Same Orient&ation"
|
||||
msgstr "Same Orient&ation"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:145
|
||||
msgid "Lock Point Where &Dragged"
|
||||
msgstr "Lock Point Where &Dragged"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:147
|
||||
msgid "Comment"
|
||||
msgstr "Comment"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:149
|
||||
msgid "&Analyze"
|
||||
msgstr "&Analyze"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:150
|
||||
msgid "Measure &Volume"
|
||||
msgstr "Measure &Volume"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:151
|
||||
msgid "Measure A&rea"
|
||||
msgstr "Measure A&rea"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:152
|
||||
msgid "Measure &Perimeter"
|
||||
msgstr "Measure &Perimeter"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:153
|
||||
msgid "Show &Interfering Parts"
|
||||
msgstr "Show &Interfering Parts"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:154
|
||||
msgid "Show &Naked Edges"
|
||||
msgstr "Show &Naked Edges"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:156
|
||||
msgid "Show Degrees of &Freedom"
|
||||
msgstr "Show Degrees of &Freedom"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:158
|
||||
msgid "&Trace Point"
|
||||
msgstr "&Trace Point"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:159
|
||||
msgid "&Stop Tracing..."
|
||||
msgstr "&Stop Tracing..."
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:160
|
||||
msgid "Step &Dimension..."
|
||||
msgstr "Step &Dimension..."
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:162
|
||||
msgid "&Help"
|
||||
msgstr "&Help"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:163
|
||||
msgid "&Website / Manual"
|
||||
msgstr "&Website / Manual"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:164
|
||||
msgid "&Language"
|
||||
msgstr "&Language"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:166
|
||||
msgid "&About"
|
||||
msgstr "&About"
|
||||
|
|
412
res/messages.pot
412
res/messages.pot
|
@ -8,11 +8,419 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: SolveSpace 3.0\n"
|
||||
"Report-Msgid-Bugs-To: whitequark@whitequark.org\n"
|
||||
"POT-Creation-Date: 2017-01-05 10:32+0000\n"
|
||||
"POT-Creation-Date: 2017-01-05 10:37+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:29
|
||||
msgid "&File"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:30
|
||||
msgid "&New"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:31
|
||||
msgid "&Open..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:32
|
||||
msgid "Open &Recent"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:33
|
||||
msgid "&Save"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:34
|
||||
msgid "Save &As..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:36
|
||||
msgid "Export &Image..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:37
|
||||
msgid "Export 2d &View..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:38
|
||||
msgid "Export 2d &Section..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:39
|
||||
msgid "Export 3d &Wireframe..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:40
|
||||
msgid "Export Triangle &Mesh..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:41
|
||||
msgid "Export &Surfaces..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:42
|
||||
msgid "Im&port..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:45
|
||||
msgid "E&xit"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:48
|
||||
msgid "&Edit"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:49
|
||||
msgid "&Undo"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:50
|
||||
msgid "&Redo"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:51
|
||||
msgid "Re&generate All"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:53
|
||||
msgid "Snap Selection to &Grid"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:54
|
||||
msgid "Rotate Imported &90°"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:56
|
||||
msgid "Cu&t"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:57
|
||||
msgid "&Copy"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:58
|
||||
msgid "&Paste"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:59
|
||||
msgid "Paste &Transformed..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:60
|
||||
msgid "&Delete"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:62
|
||||
msgid "Select &Edge Chain"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:63
|
||||
msgid "Select &All"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:64
|
||||
msgid "&Unselect All"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:66
|
||||
msgid "&View"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:67
|
||||
msgid "Zoom &In"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:68
|
||||
msgid "Zoom &Out"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:69
|
||||
msgid "Zoom To &Fit"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:71
|
||||
msgid "Align View to &Workplane"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:72
|
||||
msgid "Nearest &Ortho View"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:73
|
||||
msgid "Nearest &Isometric View"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:74
|
||||
msgid "&Center View At Point"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:76
|
||||
msgid "Show Snap &Grid"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:77
|
||||
msgid "Use &Perspective Projection"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:80
|
||||
msgid "Show Menu &Bar"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:82
|
||||
msgid "Show &Toolbar"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:83
|
||||
msgid "Show Property Bro&wser"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:85
|
||||
msgid "Dimensions in &Inches"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:86
|
||||
msgid "Dimensions in &Millimeters"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:89
|
||||
msgid "&Full Screen"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:92
|
||||
msgid "&New Group"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:93
|
||||
msgid "Sketch In &3d"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:94
|
||||
msgid "Sketch In New &Workplane"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:96
|
||||
msgid "Step &Translating"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:97
|
||||
msgid "Step &Rotating"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:99
|
||||
msgid "E&xtrude"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:100
|
||||
msgid "&Lathe"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:102
|
||||
msgid "Link / Assemble..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:103
|
||||
msgid "Link Recent"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:105
|
||||
msgid "&Sketch"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:106
|
||||
msgid "In &Workplane"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:107
|
||||
msgid "Anywhere In &3d"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:109
|
||||
msgid "Datum &Point"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:110
|
||||
msgid "&Workplane"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:112
|
||||
msgid "Line &Segment"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:113
|
||||
msgid "C&onstruction Line Segment"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:114
|
||||
msgid "&Rectangle"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:115
|
||||
msgid "&Circle"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:116
|
||||
msgid "&Arc of a Circle"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:117
|
||||
msgid "&Bezier Cubic Spline"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:119
|
||||
msgid "&Text in TrueType Font"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:121
|
||||
msgid "To&ggle Construction"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:122
|
||||
msgid "Tangent &Arc at Point"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:123
|
||||
msgid "Split Curves at &Intersection"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:125
|
||||
msgid "&Constrain"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:126
|
||||
msgid "&Distance / Diameter"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:127
|
||||
msgid "Re&ference Dimension"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:128
|
||||
msgid "A&ngle"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:129
|
||||
msgid "Reference An&gle"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:130
|
||||
msgid "Other S&upplementary Angle"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:131
|
||||
msgid "Toggle R&eference Dim"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:133
|
||||
msgid "&Horizontal"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:134
|
||||
msgid "&Vertical"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:136
|
||||
msgid "&On Point / Curve / Plane"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:137
|
||||
msgid "E&qual Length / Radius / Angle"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:138
|
||||
msgid "Length Ra&tio"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:139
|
||||
msgid "Length Diff&erence"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:140
|
||||
msgid "At &Midpoint"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:141
|
||||
msgid "S&ymmetric"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:142
|
||||
msgid "Para&llel / Tangent"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:143
|
||||
msgid "&Perpendicular"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:144
|
||||
msgid "Same Orient&ation"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:145
|
||||
msgid "Lock Point Where &Dragged"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:147
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:149
|
||||
msgid "&Analyze"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:150
|
||||
msgid "Measure &Volume"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:151
|
||||
msgid "Measure A&rea"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:152
|
||||
msgid "Measure &Perimeter"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:153
|
||||
msgid "Show &Interfering Parts"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:154
|
||||
msgid "Show &Naked Edges"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:156
|
||||
msgid "Show Degrees of &Freedom"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:158
|
||||
msgid "&Trace Point"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:159
|
||||
msgid "&Stop Tracing..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:160
|
||||
msgid "Step &Dimension..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:162
|
||||
msgid "&Help"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:163
|
||||
msgid "&Website / Manual"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:164
|
||||
msgid "&Language"
|
||||
msgstr ""
|
||||
|
||||
#: /home/whitequark/Work/solvespace/src/graphicswin.cpp:166
|
||||
msgid "&About"
|
||||
msgstr ""
|
||||
|
|
|
@ -26,143 +26,144 @@
|
|||
const GraphicsWindow::MenuEntry GraphicsWindow::menu[] = {
|
||||
//level
|
||||
// label id accel ty fn
|
||||
{ 0, "&File", Command::NONE, 0, TN, NULL },
|
||||
{ 1, "&New", Command::NEW, C|'N', TN, mFile },
|
||||
{ 1, "&Open...", Command::OPEN, C|'O', TN, mFile },
|
||||
{ 1, "Open &Recent", Command::OPEN_RECENT, 0, TN, mFile },
|
||||
{ 1, "&Save", Command::SAVE, C|'S', TN, mFile },
|
||||
{ 1, "Save &As...", Command::SAVE_AS, 0, TN, mFile },
|
||||
{ 0, N_("&File"), Command::NONE, 0, TN, NULL },
|
||||
{ 1, N_("&New"), Command::NEW, C|'N', TN, mFile },
|
||||
{ 1, N_("&Open..."), Command::OPEN, C|'O', TN, mFile },
|
||||
{ 1, N_("Open &Recent"), Command::OPEN_RECENT, 0, TN, mFile },
|
||||
{ 1, N_("&Save"), Command::SAVE, C|'S', TN, mFile },
|
||||
{ 1, N_("Save &As..."), Command::SAVE_AS, 0, TN, mFile },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "Export &Image...", Command::EXPORT_PNG, 0, TN, mFile },
|
||||
{ 1, "Export 2d &View...", Command::EXPORT_VIEW, 0, TN, mFile },
|
||||
{ 1, "Export 2d &Section...", Command::EXPORT_SECTION, 0, TN, mFile },
|
||||
{ 1, "Export 3d &Wireframe...", Command::EXPORT_WIREFRAME, 0, TN, mFile },
|
||||
{ 1, "Export Triangle &Mesh...", Command::EXPORT_MESH, 0, TN, mFile },
|
||||
{ 1, "Export &Surfaces...", Command::EXPORT_SURFACES, 0, TN, mFile },
|
||||
{ 1, "Im&port...", Command::IMPORT, 0, TN, mFile },
|
||||
{ 1, N_("Export &Image..."), Command::EXPORT_PNG, 0, TN, mFile },
|
||||
{ 1, N_("Export 2d &View..."), Command::EXPORT_VIEW, 0, TN, mFile },
|
||||
{ 1, N_("Export 2d &Section..."), Command::EXPORT_SECTION, 0, TN, mFile },
|
||||
{ 1, N_("Export 3d &Wireframe..."), Command::EXPORT_WIREFRAME, 0, TN, mFile },
|
||||
{ 1, N_("Export Triangle &Mesh..."), Command::EXPORT_MESH, 0, TN, mFile },
|
||||
{ 1, N_("Export &Surfaces..."), Command::EXPORT_SURFACES, 0, TN, mFile },
|
||||
{ 1, N_("Im&port..."), Command::IMPORT, 0, TN, mFile },
|
||||
#ifndef __APPLE__
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "E&xit", Command::EXIT, C|'Q', TN, mFile },
|
||||
{ 1, N_("E&xit"), Command::EXIT, C|'Q', TN, mFile },
|
||||
#endif
|
||||
|
||||
{ 0, "&Edit", Command::NONE, 0, TN, NULL },
|
||||
{ 1, "&Undo", Command::UNDO, C|'Z', TN, mEdit },
|
||||
{ 1, "&Redo", Command::REDO, C|'Y', TN, mEdit },
|
||||
{ 1, "Re&generate All", Command::REGEN_ALL, ' ', TN, mEdit },
|
||||
{ 0, N_("&Edit"), Command::NONE, 0, TN, NULL },
|
||||
{ 1, N_("&Undo"), Command::UNDO, C|'Z', TN, mEdit },
|
||||
{ 1, N_("&Redo"), Command::REDO, C|'Y', TN, mEdit },
|
||||
{ 1, N_("Re&generate All"), Command::REGEN_ALL, ' ', TN, mEdit },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "Snap Selection to &Grid", Command::SNAP_TO_GRID, '.', TN, mEdit },
|
||||
{ 1, "Rotate Imported &90°", Command::ROTATE_90, '9', TN, mEdit },
|
||||
{ 1, N_("Snap Selection to &Grid"), Command::SNAP_TO_GRID, '.', TN, mEdit },
|
||||
{ 1, N_("Rotate Imported &90°"), Command::ROTATE_90, '9', TN, mEdit },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "Cu&t", Command::CUT, C|'X', TN, mClip },
|
||||
{ 1, "&Copy", Command::COPY, C|'C', TN, mClip },
|
||||
{ 1, "&Paste", Command::PASTE, C|'V', TN, mClip },
|
||||
{ 1, "Paste &Transformed...", Command::PASTE_TRANSFORM, C|'T', TN, mClip },
|
||||
{ 1, "&Delete", Command::DELETE, DEL, TN, mClip },
|
||||
{ 1, N_("Cu&t"), Command::CUT, C|'X', TN, mClip },
|
||||
{ 1, N_("&Copy"), Command::COPY, C|'C', TN, mClip },
|
||||
{ 1, N_("&Paste"), Command::PASTE, C|'V', TN, mClip },
|
||||
{ 1, N_("Paste &Transformed..."), Command::PASTE_TRANSFORM, C|'T', TN, mClip },
|
||||
{ 1, N_("&Delete"), Command::DELETE, DEL, TN, mClip },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "Select &Edge Chain", Command::SELECT_CHAIN, C|'E', TN, mEdit },
|
||||
{ 1, "Select &All", Command::SELECT_ALL, C|'A', TN, mEdit },
|
||||
{ 1, "&Unselect All", Command::UNSELECT_ALL, ESC, TN, mEdit },
|
||||
{ 1, N_("Select &Edge Chain"), Command::SELECT_CHAIN, C|'E', TN, mEdit },
|
||||
{ 1, N_("Select &All"), Command::SELECT_ALL, C|'A', TN, mEdit },
|
||||
{ 1, N_("&Unselect All"), Command::UNSELECT_ALL, ESC, TN, mEdit },
|
||||
|
||||
{ 0, "&View", Command::NONE, 0, TN, NULL },
|
||||
{ 1, "Zoom &In", Command::ZOOM_IN, '+', TN, mView },
|
||||
{ 1, "Zoom &Out", Command::ZOOM_OUT, '-', TN, mView },
|
||||
{ 1, "Zoom To &Fit", Command::ZOOM_TO_FIT, 'F', TN, mView },
|
||||
{ 0, N_("&View"), Command::NONE, 0, TN, NULL },
|
||||
{ 1, N_("Zoom &In"), Command::ZOOM_IN, '+', TN, mView },
|
||||
{ 1, N_("Zoom &Out"), Command::ZOOM_OUT, '-', TN, mView },
|
||||
{ 1, N_("Zoom To &Fit"), Command::ZOOM_TO_FIT, 'F', TN, mView },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "Align View to &Workplane", Command::ONTO_WORKPLANE, 'W', TN, mView },
|
||||
{ 1, "Nearest &Ortho View", Command::NEAREST_ORTHO, F(2), TN, mView },
|
||||
{ 1, "Nearest &Isometric View", Command::NEAREST_ISO, F(3), TN, mView },
|
||||
{ 1, "&Center View At Point", Command::CENTER_VIEW, F(4), TN, mView },
|
||||
{ 1, N_("Align View to &Workplane"), Command::ONTO_WORKPLANE, 'W', TN, mView },
|
||||
{ 1, N_("Nearest &Ortho View"), Command::NEAREST_ORTHO, F(2), TN, mView },
|
||||
{ 1, N_("Nearest &Isometric View"), Command::NEAREST_ISO, F(3), TN, mView },
|
||||
{ 1, N_("&Center View At Point"), Command::CENTER_VIEW, F(4), TN, mView },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "Show Snap &Grid", Command::SHOW_GRID, '>', TC, mView },
|
||||
{ 1, "Use &Perspective Projection", Command::PERSPECTIVE_PROJ, '`', TC, mView },
|
||||
{ 1, N_("Show Snap &Grid"), Command::SHOW_GRID, '>', TC, mView },
|
||||
{ 1, N_("Use &Perspective Projection"), Command::PERSPECTIVE_PROJ, '`', TC, mView },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
#if defined(__APPLE__)
|
||||
{ 1, "Show Menu &Bar", Command::SHOW_MENU_BAR, C|F(12), TC, mView },
|
||||
{ 1, N_("Show Menu &Bar"), Command::SHOW_MENU_BAR, C|F(12), TC, mView },
|
||||
#endif
|
||||
{ 1, "Show &Toolbar", Command::SHOW_TOOLBAR, 0, TC, mView },
|
||||
{ 1, "Show Property Bro&wser", Command::SHOW_TEXT_WND, '\t', TC, mView },
|
||||
{ 1, N_("Show &Toolbar"), Command::SHOW_TOOLBAR, 0, TC, mView },
|
||||
{ 1, N_("Show Property Bro&wser"), Command::SHOW_TEXT_WND, '\t', TC, mView },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "Dimensions in &Inches", Command::UNITS_INCHES, 0, TR, mView },
|
||||
{ 1, "Dimensions in &Millimeters", Command::UNITS_MM, 0, TR, mView },
|
||||
{ 1, N_("Dimensions in &Inches"), Command::UNITS_INCHES, 0, TR, mView },
|
||||
{ 1, N_("Dimensions in &Millimeters"), Command::UNITS_MM, 0, TR, mView },
|
||||
#if defined(__unix__) || defined(__APPLE__)
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "&Full Screen", Command::FULL_SCREEN, C|F(11), TC, mView },
|
||||
{ 1, N_("&Full Screen"), Command::FULL_SCREEN, C|F(11), TC, mView },
|
||||
#endif
|
||||
|
||||
{ 0, "&New Group", Command::NONE, 0, TN, NULL },
|
||||
{ 1, "Sketch In &3d", Command::GROUP_3D, S|'3', TN, mGrp },
|
||||
{ 1, "Sketch In New &Workplane", Command::GROUP_WRKPL, S|'W', TN, mGrp },
|
||||
{ 0, N_("&New Group"), Command::NONE, 0, TN, NULL },
|
||||
{ 1, N_("Sketch In &3d"), Command::GROUP_3D, S|'3', TN, mGrp },
|
||||
{ 1, N_("Sketch In New &Workplane"), Command::GROUP_WRKPL, S|'W', TN, mGrp },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "Step &Translating", Command::GROUP_TRANS, S|'T', TN, mGrp },
|
||||
{ 1, "Step &Rotating", Command::GROUP_ROT, S|'R', TN, mGrp },
|
||||
{ 1, N_("Step &Translating"), Command::GROUP_TRANS, S|'T', TN, mGrp },
|
||||
{ 1, N_("Step &Rotating"), Command::GROUP_ROT, S|'R', TN, mGrp },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "E&xtrude", Command::GROUP_EXTRUDE, S|'X', TN, mGrp },
|
||||
{ 1, "&Lathe", Command::GROUP_LATHE, S|'L', TN, mGrp },
|
||||
{ 1, N_("E&xtrude"), Command::GROUP_EXTRUDE, S|'X', TN, mGrp },
|
||||
{ 1, N_("&Lathe"), Command::GROUP_LATHE, S|'L', TN, mGrp },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "Link / Assemble...", Command::GROUP_LINK, S|'I', TN, mGrp },
|
||||
{ 1, "Link Recent", Command::GROUP_RECENT, 0, TN, mGrp },
|
||||
{ 1, N_("Link / Assemble..."), Command::GROUP_LINK, S|'I', TN, mGrp },
|
||||
{ 1, N_("Link Recent"), Command::GROUP_RECENT, 0, TN, mGrp },
|
||||
|
||||
{ 0, "&Sketch", Command::NONE, 0, TN, NULL },
|
||||
{ 1, "In &Workplane", Command::SEL_WORKPLANE, '2', TR, mReq },
|
||||
{ 1, "Anywhere In &3d", Command::FREE_IN_3D, '3', TR, mReq },
|
||||
{ 0, N_("&Sketch"), Command::NONE, 0, TN, NULL },
|
||||
{ 1, N_("In &Workplane"), Command::SEL_WORKPLANE, '2', TR, mReq },
|
||||
{ 1, N_("Anywhere In &3d"), Command::FREE_IN_3D, '3', TR, mReq },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "Datum &Point", Command::DATUM_POINT, 'P', TN, mReq },
|
||||
{ 1, "&Workplane", Command::WORKPLANE, 0, TN, mReq },
|
||||
{ 1, N_("Datum &Point"), Command::DATUM_POINT, 'P', TN, mReq },
|
||||
{ 1, N_("&Workplane"), Command::WORKPLANE, 0, TN, mReq },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "Line &Segment", Command::LINE_SEGMENT, 'S', TN, mReq },
|
||||
{ 1, "C&onstruction Line Segment", Command::CONSTR_SEGMENT, S|'S', TN, mReq },
|
||||
{ 1, "&Rectangle", Command::RECTANGLE, 'R', TN, mReq },
|
||||
{ 1, "&Circle", Command::CIRCLE, 'C', TN, mReq },
|
||||
{ 1, "&Arc of a Circle", Command::ARC, 'A', TN, mReq },
|
||||
{ 1, "&Bezier Cubic Spline", Command::CUBIC, 'B', TN, mReq },
|
||||
{ 1, N_("Line &Segment"), Command::LINE_SEGMENT, 'S', TN, mReq },
|
||||
{ 1, N_("C&onstruction Line Segment"), Command::CONSTR_SEGMENT, S|'S', TN, mReq },
|
||||
{ 1, N_("&Rectangle"), Command::RECTANGLE, 'R', TN, mReq },
|
||||
{ 1, N_("&Circle"), Command::CIRCLE, 'C', TN, mReq },
|
||||
{ 1, N_("&Arc of a Circle"), Command::ARC, 'A', TN, mReq },
|
||||
{ 1, N_("&Bezier Cubic Spline"), Command::CUBIC, 'B', TN, mReq },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "&Text in TrueType Font", Command::TTF_TEXT, 'T', TN, mReq },
|
||||
{ 1, N_("&Text in TrueType Font"), Command::TTF_TEXT, 'T', TN, mReq },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "To&ggle Construction", Command::CONSTRUCTION, 'G', TN, mReq },
|
||||
{ 1, "Tangent &Arc at Point", Command::TANGENT_ARC, S|'A', TN, mReq },
|
||||
{ 1, "Split Curves at &Intersection", Command::SPLIT_CURVES, 'I', TN, mReq },
|
||||
{ 1, N_("To&ggle Construction"), Command::CONSTRUCTION, 'G', TN, mReq },
|
||||
{ 1, N_("Tangent &Arc at Point"), Command::TANGENT_ARC, S|'A', TN, mReq },
|
||||
{ 1, N_("Split Curves at &Intersection"), Command::SPLIT_CURVES, 'I', TN, mReq },
|
||||
|
||||
{ 0, "&Constrain", Command::NONE, 0, TN, NULL },
|
||||
{ 1, "&Distance / Diameter", Command::DISTANCE_DIA, 'D', TN, mCon },
|
||||
{ 1, "Re&ference Dimension", Command::REF_DISTANCE, S|'D', TN, mCon },
|
||||
{ 1, "A&ngle", Command::ANGLE, 'N', TN, mCon },
|
||||
{ 1, "Reference An&gle", Command::REF_ANGLE, S|'N', TN, mCon },
|
||||
{ 1, "Other S&upplementary Angle", Command::OTHER_ANGLE, 'U', TN, mCon },
|
||||
{ 1, "Toggle R&eference Dim", Command::REFERENCE, 'E', TN, mCon },
|
||||
{ 0, N_("&Constrain"), Command::NONE, 0, TN, NULL },
|
||||
{ 1, N_("&Distance / Diameter"), Command::DISTANCE_DIA, 'D', TN, mCon },
|
||||
{ 1, N_("Re&ference Dimension"), Command::REF_DISTANCE, S|'D', TN, mCon },
|
||||
{ 1, N_("A&ngle"), Command::ANGLE, 'N', TN, mCon },
|
||||
{ 1, N_("Reference An&gle"), Command::REF_ANGLE, S|'N', TN, mCon },
|
||||
{ 1, N_("Other S&upplementary Angle"), Command::OTHER_ANGLE, 'U', TN, mCon },
|
||||
{ 1, N_("Toggle R&eference Dim"), Command::REFERENCE, 'E', TN, mCon },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "&Horizontal", Command::HORIZONTAL, 'H', TN, mCon },
|
||||
{ 1, "&Vertical", Command::VERTICAL, 'V', TN, mCon },
|
||||
{ 1, N_("&Horizontal"), Command::HORIZONTAL, 'H', TN, mCon },
|
||||
{ 1, N_("&Vertical"), Command::VERTICAL, 'V', TN, mCon },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "&On Point / Curve / Plane", Command::ON_ENTITY, 'O', TN, mCon },
|
||||
{ 1, "E&qual Length / Radius / Angle", Command::EQUAL, 'Q', TN, mCon },
|
||||
{ 1, "Length Ra&tio", Command::RATIO, 'Z', TN, mCon },
|
||||
{ 1, "Length Diff&erence", Command::DIFFERENCE, 'J', TN, mCon },
|
||||
{ 1, "At &Midpoint", Command::AT_MIDPOINT, 'M', TN, mCon },
|
||||
{ 1, "S&ymmetric", Command::SYMMETRIC, 'Y', TN, mCon },
|
||||
{ 1, "Para&llel / Tangent", Command::PARALLEL, 'L', TN, mCon },
|
||||
{ 1, "&Perpendicular", Command::PERPENDICULAR, '[', TN, mCon },
|
||||
{ 1, "Same Orient&ation", Command::ORIENTED_SAME, 'X', TN, mCon },
|
||||
{ 1, "Lock Point Where &Dragged", Command::WHERE_DRAGGED, ']', TN, mCon },
|
||||
{ 1, N_("&On Point / Curve / Plane"), Command::ON_ENTITY, 'O', TN, mCon },
|
||||
{ 1, N_("E&qual Length / Radius / Angle"), Command::EQUAL, 'Q', TN, mCon },
|
||||
{ 1, N_("Length Ra&tio"), Command::RATIO, 'Z', TN, mCon },
|
||||
{ 1, N_("Length Diff&erence"), Command::DIFFERENCE, 'J', TN, mCon },
|
||||
{ 1, N_("At &Midpoint"), Command::AT_MIDPOINT, 'M', TN, mCon },
|
||||
{ 1, N_("S&ymmetric"), Command::SYMMETRIC, 'Y', TN, mCon },
|
||||
{ 1, N_("Para&llel / Tangent"), Command::PARALLEL, 'L', TN, mCon },
|
||||
{ 1, N_("&Perpendicular"), Command::PERPENDICULAR, '[', TN, mCon },
|
||||
{ 1, N_("Same Orient&ation"), Command::ORIENTED_SAME, 'X', TN, mCon },
|
||||
{ 1, N_("Lock Point Where &Dragged"), Command::WHERE_DRAGGED, ']', TN, mCon },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "Comment", Command::COMMENT, ';', TN, mCon },
|
||||
{ 1, N_("Comment"), Command::COMMENT, ';', TN, mCon },
|
||||
|
||||
{ 0, "&Analyze", Command::NONE, 0, TN, NULL },
|
||||
{ 1, "Measure &Volume", Command::VOLUME, C|S|'V', TN, mAna },
|
||||
{ 1, "Measure A&rea", Command::AREA, C|S|'A', TN, mAna },
|
||||
{ 1, "Measure &Perimeter", Command::PERIMETER, C|S|'P', TN, mAna },
|
||||
{ 1, "Show &Interfering Parts", Command::INTERFERENCE, C|S|'I', TN, mAna },
|
||||
{ 1, "Show &Naked Edges", Command::NAKED_EDGES, C|S|'N', TN, mAna },
|
||||
{ 0, N_("&Analyze"), Command::NONE, 0, TN, NULL },
|
||||
{ 1, N_("Measure &Volume"), Command::VOLUME, C|S|'V', TN, mAna },
|
||||
{ 1, N_("Measure A&rea"), Command::AREA, C|S|'A', TN, mAna },
|
||||
{ 1, N_("Measure &Perimeter"), Command::PERIMETER, C|S|'P', TN, mAna },
|
||||
{ 1, N_("Show &Interfering Parts"), Command::INTERFERENCE, C|S|'I', TN, mAna },
|
||||
{ 1, N_("Show &Naked Edges"), Command::NAKED_EDGES, C|S|'N', TN, mAna },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "Show Degrees of &Freedom", Command::SHOW_DOF, C|S|'F', TN, mAna },
|
||||
{ 1, N_("Show Degrees of &Freedom"), Command::SHOW_DOF, C|S|'F', TN, mAna },
|
||||
{ 1, NULL, Command::NONE, 0, TN, NULL },
|
||||
{ 1, "&Trace Point", Command::TRACE_PT, C|S|'T', TN, mAna },
|
||||
{ 1, "&Stop Tracing...", Command::STOP_TRACING, C|S|'S', TN, mAna },
|
||||
{ 1, "Step &Dimension...", Command::STEP_DIM, C|S|'D', TN, mAna },
|
||||
{ 1, N_("&Trace Point"), Command::TRACE_PT, C|S|'T', TN, mAna },
|
||||
{ 1, N_("&Stop Tracing..."), Command::STOP_TRACING, C|S|'S', TN, mAna },
|
||||
{ 1, N_("Step &Dimension..."), Command::STEP_DIM, C|S|'D', TN, mAna },
|
||||
|
||||
{ 0, "&Help", Command::NONE, 0, TN, NULL },
|
||||
{ 1, "&Website / Manual", Command::WEBSITE, 0, TN, mHelp },
|
||||
{ 0, N_("&Help"), Command::NONE, 0, TN, NULL },
|
||||
{ 1, N_("&Website / Manual"), Command::WEBSITE, 0, TN, mHelp },
|
||||
{ 1, N_("&Language"), Command::LOCALE, 0, TN, mHelp },
|
||||
#ifndef __APPLE__
|
||||
{ 1, "&About", Command::ABOUT, 0, TN, mHelp },
|
||||
{ 1, N_("&About"), Command::ABOUT, 0, TN, mHelp },
|
||||
#endif
|
||||
{ -1, 0, Command::NONE, 0, TN, 0 }
|
||||
};
|
||||
|
|
|
@ -592,6 +592,12 @@ ContextCommand ShowContextMenu(void) {
|
|||
SolveSpace::Group::MenuGroup((SolveSpace::Command)cmd);
|
||||
}
|
||||
}
|
||||
|
||||
+ (void)handleLocale:(id)sender {
|
||||
uint32_t offset = [sender tag];
|
||||
SolveSpace::SolveSpaceUI::MenuHelp(
|
||||
(SolveSpace::Command)((uint32_t)SolveSpace::Command::LOCALE + offset));
|
||||
}
|
||||
@end
|
||||
|
||||
namespace SolveSpace {
|
||||
|
@ -602,6 +608,10 @@ void InitMainMenu(NSMenu *mainMenu) {
|
|||
NSMenu *levels[5] = {mainMenu, 0};
|
||||
NSString *label;
|
||||
|
||||
while([mainMenu numberOfItems] != 1) {
|
||||
[mainMenu removeItemAtIndex:1];
|
||||
}
|
||||
|
||||
const GraphicsWindow::MenuEntry *entry = &GraphicsWindow::menu[0];
|
||||
int current_level = 0;
|
||||
while(entry->level >= 0) {
|
||||
|
@ -619,9 +629,9 @@ void InitMainMenu(NSMenu *mainMenu) {
|
|||
current_level = entry->level;
|
||||
|
||||
if(entry->label) {
|
||||
label = [NSString stringWithUTF8String:Translate(entry->label).c_str()];
|
||||
/* OS X does not support mnemonics */
|
||||
label = [[NSString stringWithUTF8String:entry->label]
|
||||
stringByReplacingOccurrencesOfString:@"&" withString:@""];
|
||||
label = [label stringByReplacingOccurrencesOfString:@"&" withString:@""];
|
||||
|
||||
unichar accelChar = entry->accel &
|
||||
~(GraphicsWindow::SHIFT_MASK | GraphicsWindow::CTRL_MASK);
|
||||
|
@ -650,6 +660,22 @@ void InitMainMenu(NSMenu *mainMenu) {
|
|||
[levels[entry->level] addItem:[NSMenuItem separatorItem]];
|
||||
}
|
||||
|
||||
if(entry->id == Command::LOCALE) {
|
||||
NSMenu *localeMenu = [[NSMenu alloc] initWithTitle:label];
|
||||
[menuItem setSubmenu:localeMenu];
|
||||
|
||||
size_t i = 0;
|
||||
for(auto locale : Locales()) {
|
||||
NSMenuItem *localeMenuItem =
|
||||
[localeMenu addItemWithTitle:
|
||||
[NSString stringWithUTF8String:locale.displayName.c_str()]
|
||||
action:NULL keyEquivalent:@""];
|
||||
[localeMenuItem setTag:(NSInteger)i++];
|
||||
[localeMenuItem setTarget:[MainMenuResponder class]];
|
||||
[localeMenuItem setAction:@selector(handleLocale:)];
|
||||
}
|
||||
}
|
||||
|
||||
mainMenuItems[(uint32_t)entry->id] = menuItem;
|
||||
|
||||
++entry;
|
||||
|
@ -1168,6 +1194,10 @@ std::vector<std::string> SolveSpace::GetFontFiles() {
|
|||
}
|
||||
@end
|
||||
|
||||
void SolveSpace::RefreshLocale() {
|
||||
SolveSpace::InitMainMenu([NSApp mainMenu]);
|
||||
}
|
||||
|
||||
void SolveSpace::ExitNow(void) {
|
||||
[NSApp stop:nil];
|
||||
}
|
||||
|
@ -1329,7 +1359,12 @@ int main(int argc, const char *argv[]) {
|
|||
SolveSpace::InitGraphicsWindow();
|
||||
SolveSpace::InitTextWindow();
|
||||
[[NSBundle mainBundle] loadNibNamed:@"MainMenu" owner:nil topLevelObjects:nil];
|
||||
SolveSpace::InitMainMenu([NSApp mainMenu]);
|
||||
|
||||
NSArray *languages = [NSLocale preferredLanguages];
|
||||
for(NSString *language in languages) {
|
||||
dbp("%s", ([language UTF8String]));
|
||||
if(SolveSpace::SetLocale([language UTF8String])) break;
|
||||
}
|
||||
|
||||
connexionInit();
|
||||
SolveSpace::SS.Init();
|
||||
|
|
|
@ -782,7 +782,7 @@ protected:
|
|||
}
|
||||
|
||||
private:
|
||||
const GraphicsWindow::MenuEntry &_entry;
|
||||
const GraphicsWindow::MenuEntry _entry;
|
||||
bool _synthetic;
|
||||
};
|
||||
|
||||
|
@ -808,18 +808,21 @@ static void InitMainMenu(Gtk::MenuShell *menu_shell) {
|
|||
current_level = entry->level;
|
||||
|
||||
if(entry->label) {
|
||||
GraphicsWindow::MenuEntry localizedEntry = *entry;
|
||||
localizedEntry.label = Translate(entry->label).c_str();
|
||||
|
||||
switch(entry->kind) {
|
||||
case GraphicsWindow::MenuKind::NORMAL:
|
||||
menu_item = new MainMenuItem<Gtk::MenuItem>(*entry);
|
||||
menu_item = new MainMenuItem<Gtk::MenuItem>(localizedEntry);
|
||||
break;
|
||||
|
||||
case GraphicsWindow::MenuKind::CHECK:
|
||||
menu_item = new MainMenuItem<Gtk::CheckMenuItem>(*entry);
|
||||
menu_item = new MainMenuItem<Gtk::CheckMenuItem>(localizedEntry);
|
||||
break;
|
||||
|
||||
case GraphicsWindow::MenuKind::RADIO:
|
||||
MainMenuItem<Gtk::CheckMenuItem> *radio_item =
|
||||
new MainMenuItem<Gtk::CheckMenuItem>(*entry);
|
||||
new MainMenuItem<Gtk::CheckMenuItem>(localizedEntry);
|
||||
radio_item->set_draw_as_radio(true);
|
||||
menu_item = radio_item;
|
||||
break;
|
||||
|
@ -828,6 +831,20 @@ static void InitMainMenu(Gtk::MenuShell *menu_shell) {
|
|||
menu_item = new Gtk::SeparatorMenuItem();
|
||||
}
|
||||
|
||||
if(entry->id == Command::LOCALE) {
|
||||
Gtk::Menu *menu = new Gtk::Menu;
|
||||
menu_item->set_submenu(*menu);
|
||||
|
||||
size_t i = 0;
|
||||
for(auto locale : Locales()) {
|
||||
GraphicsWindow::MenuEntry localeEntry = {};
|
||||
localeEntry.label = locale.displayName.c_str();
|
||||
localeEntry.id = (Command)((uint32_t)Command::LOCALE + i++);
|
||||
localeEntry.fn = entry->fn;
|
||||
menu->append(*new MainMenuItem<Gtk::MenuItem>(localeEntry));
|
||||
}
|
||||
}
|
||||
|
||||
levels[entry->level]->append(*menu_item);
|
||||
|
||||
main_menu_items[(uint32_t)entry->id] = menu_item;
|
||||
|
@ -1347,7 +1364,17 @@ static GdkFilterReturn GdkSpnavFilter(GdkXEvent *gxevent, GdkEvent *, gpointer)
|
|||
|
||||
/* Application lifecycle */
|
||||
|
||||
void ExitNow(void) {
|
||||
void RefreshLocale() {
|
||||
for(auto menu : GW->get_menubar().get_children()) {
|
||||
GW->get_menubar().remove(*menu);
|
||||
}
|
||||
InitMainMenu(&GW->get_menubar());
|
||||
GW->get_menubar().show_all();
|
||||
GW->get_menubar().accelerate(*GW);
|
||||
GW->get_menubar().accelerate(*TW);
|
||||
}
|
||||
|
||||
void ExitNow() {
|
||||
GW->hide();
|
||||
TW->hide();
|
||||
}
|
||||
|
@ -1390,8 +1417,6 @@ int main(int argc, char** argv) {
|
|||
|
||||
TW.reset(new TextWindowGtk);
|
||||
GW.reset(new GraphicsWindowGtk);
|
||||
InitMainMenu(&GW->get_menubar());
|
||||
GW->get_menubar().accelerate(*TW);
|
||||
TW->set_transient_for(*GW);
|
||||
GW->set_icon(icon_gdk);
|
||||
TW->set_icon(icon_gdk);
|
||||
|
@ -1399,6 +1424,11 @@ int main(int argc, char** argv) {
|
|||
TW->show_all();
|
||||
GW->show_all();
|
||||
|
||||
const char* const* langNames = g_get_language_names();
|
||||
while(*langNames) {
|
||||
if(SetLocale(*langNames++)) break;
|
||||
}
|
||||
|
||||
#ifdef HAVE_SPACEWARE
|
||||
// We don't care if it can't be opened; just continue without.
|
||||
spnav_x11_open(gdk_x11_get_default_xdisplay(),
|
||||
|
|
|
@ -253,6 +253,9 @@ std::vector<std::string> GetFontFiles() {
|
|||
// Application lifecycle
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void RefreshLocale() {
|
||||
}
|
||||
|
||||
void ExitNow() {
|
||||
ssassert(false, "Not implemented");
|
||||
}
|
||||
|
|
|
@ -16,6 +16,11 @@
|
|||
#include <commctrl.h>
|
||||
#include <commdlg.h>
|
||||
|
||||
#ifdef MenuHelp
|
||||
// This is defined to IsolationAwareMenuHelp on Windows 6.0 and later.
|
||||
#undef MenuHelp
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SPACEWARE
|
||||
# include <si.h>
|
||||
# include <siapp.h>
|
||||
|
@ -1016,6 +1021,11 @@ LRESULT CALLBACK GraphicsWndProc(HWND hwnd, UINT msg, WPARAM wParam,
|
|||
Group::MenuGroup(id);
|
||||
break;
|
||||
}
|
||||
if((uint32_t)id >= (uint32_t)Command::LOCALE &&
|
||||
(uint32_t)id < ((uint32_t)Command::LOCALE + Locales().size())) {
|
||||
SolveSpaceUI::MenuHelp(id);
|
||||
break;
|
||||
}
|
||||
int i;
|
||||
for(i = 0; SS.GW.menu[i].level >= 0; i++) {
|
||||
if(id == SS.GW.menu[i].id) {
|
||||
|
@ -1293,7 +1303,7 @@ HMENU CreateGraphicsWindowMenus()
|
|||
if(SS.GW.menu[i].label) {
|
||||
std::string accel = MakeAcceleratorLabel(SS.GW.menu[i].accel);
|
||||
const char *sep = accel.empty() ? "" : "\t";
|
||||
label = ssprintf("%s%s%s", SS.GW.menu[i].label, sep, accel.c_str());
|
||||
label = ssprintf("%s%s%s", Translate(SS.GW.menu[i].label).c_str(), sep, accel.c_str());
|
||||
}
|
||||
|
||||
if(SS.GW.menu[i].level == 0) {
|
||||
|
@ -1311,6 +1321,15 @@ HMENU CreateGraphicsWindowMenus()
|
|||
RecentImportMenu = CreateMenu();
|
||||
AppendMenuW(m, MF_STRING | MF_POPUP,
|
||||
(UINT_PTR)RecentImportMenu, Widen(label).c_str());
|
||||
} else if(SS.GW.menu[i].id == Command::LOCALE) {
|
||||
HMENU LocaleMenu = CreateMenu();
|
||||
size_t i = 0;
|
||||
for(auto locale : Locales()) {
|
||||
AppendMenuW(LocaleMenu, MF_STRING,
|
||||
(uint32_t)Command::LOCALE + i++, Widen(locale.displayName).c_str());
|
||||
}
|
||||
AppendMenuW(m, MF_STRING | MF_POPUP,
|
||||
(UINT_PTR)LocaleMenu, Widen(label).c_str());
|
||||
} else if(SS.GW.menu[i].label) {
|
||||
AppendMenuW(m, MF_STRING, (uint32_t)SS.GW.menu[i].id, Widen(label).c_str());
|
||||
} else {
|
||||
|
@ -1343,12 +1362,11 @@ static void CreateMainWindows()
|
|||
IMAGE_ICON, 16, 16, 0);
|
||||
ssassert(RegisterClassEx(&wc), "Cannot register window class");
|
||||
|
||||
HMENU top = CreateGraphicsWindowMenus();
|
||||
GraphicsWnd = CreateWindowExW(0, L"GraphicsWnd",
|
||||
L"SolveSpace (not yet saved)",
|
||||
WS_OVERLAPPED | WS_THICKFRAME | WS_CLIPCHILDREN | WS_MAXIMIZEBOX |
|
||||
WS_MINIMIZEBOX | WS_SYSMENU | WS_SIZEBOX | WS_CLIPSIBLINGS,
|
||||
50, 50, 900, 600, NULL, top, Instance, NULL);
|
||||
50, 50, 900, 600, NULL, NULL, Instance, NULL);
|
||||
ssassert(GraphicsWnd != NULL, "Cannot create window");
|
||||
|
||||
GraphicsEditControl = CreateWindowExW(WS_EX_CLIENTEDGE, WC_EDIT, L"",
|
||||
|
@ -1396,6 +1414,14 @@ static void CreateMainWindows()
|
|||
ClientIsSmallerBy = (r.bottom - r.top) - (rc.bottom - rc.top);
|
||||
}
|
||||
|
||||
void SolveSpace::RefreshLocale() {
|
||||
HMENU oldMenu = GetMenu(GraphicsWnd);
|
||||
SetMenu(GraphicsWnd, CreateGraphicsWindowMenus());
|
||||
if(oldMenu != NULL) {
|
||||
DestroyMenu(oldMenu);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_SPACEWARE
|
||||
//-----------------------------------------------------------------------------
|
||||
// Test if a message comes from the SpaceNavigator device. If yes, dispatch
|
||||
|
@ -1478,6 +1504,9 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
|
|||
}
|
||||
#endif
|
||||
|
||||
// Use the user default locale.
|
||||
SetLocale((uint16_t)GetUserDefaultLCID());
|
||||
|
||||
// Call in to the platform-independent code, and let them do their init
|
||||
SS.Init();
|
||||
|
||||
|
|
|
@ -1473,6 +1473,7 @@ bool SetLocale(Predicate pred) {
|
|||
std::string filename = "locales/" + it->language + "_" + it->region + ".po";
|
||||
translations[*it] = Translation::From(LoadString(filename));
|
||||
currentTranslation = &translations[*it];
|
||||
RefreshLocale();
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
|
|
|
@ -102,6 +102,11 @@ void SolveSpaceUI::Init() {
|
|||
RefreshRecentMenus();
|
||||
// Autosave timer
|
||||
autosaveInterval = CnfThawInt(5, "AutosaveInterval");
|
||||
// Locale
|
||||
std::string locale = CnfThawString("", "Locale");
|
||||
if(!locale.empty()) {
|
||||
SetLocale(locale);
|
||||
}
|
||||
|
||||
// The default styles (colors, line widths, etc.) are also stored in the
|
||||
// configuration file, but we will automatically load those as we need
|
||||
|
@ -810,6 +815,20 @@ void SolveSpaceUI::ShowNakedEdges(bool reportOnlyWhenNotOkay) {
|
|||
}
|
||||
|
||||
void SolveSpaceUI::MenuHelp(Command id) {
|
||||
if((uint32_t)id >= (uint32_t)Command::LOCALE &&
|
||||
(uint32_t)id < ((uint32_t)Command::LOCALE + Locales().size())) {
|
||||
size_t offset = (uint32_t)id - (uint32_t)Command::LOCALE;
|
||||
size_t i = 0;
|
||||
for(auto locale : Locales()) {
|
||||
if(i++ == offset) {
|
||||
CnfFreezeString(locale.Culture(), "Locale");
|
||||
SetLocale(locale.Culture());
|
||||
break;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
switch(id) {
|
||||
case Command::WEBSITE:
|
||||
OpenWebsite("http://solvespace.com/helpmenu");
|
||||
|
|
|
@ -238,6 +238,8 @@ std::vector<std::string> GetFontFiles();
|
|||
|
||||
void OpenWebsite(const char *url);
|
||||
|
||||
void RefreshLocale();
|
||||
|
||||
void CheckMenuByCmd(Command id, bool checked);
|
||||
void RadioMenuByCmd(Command id, bool selected);
|
||||
void EnableMenuByCmd(Command id, bool enabled);
|
||||
|
|
4
src/ui.h
4
src/ui.h
|
@ -21,7 +21,7 @@ public:
|
|||
};
|
||||
|
||||
struct LocaleLess {
|
||||
bool operator()(const Locale &a, const Locale &b) {
|
||||
bool operator()(const Locale &a, const Locale &b) const {
|
||||
return a.language < b.language ||
|
||||
(a.language == b.language && a.region < b.region);
|
||||
}
|
||||
|
@ -143,6 +143,8 @@ enum class Command : uint32_t {
|
|||
// Recent
|
||||
RECENT_OPEN = 0xf000,
|
||||
RECENT_LINK = 0xf100,
|
||||
// Locale
|
||||
LOCALE = 0xf200,
|
||||
};
|
||||
|
||||
enum class ContextCommand : uint32_t {
|
||||
|
|
Loading…
Reference in New Issue