From 39b16e3f9fa51e737dd4cdfed7def8259757d24c Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sun, 15 Apr 2018 17:08:44 +0200 Subject: Internationalise all strings in source code --- po/POTFILES | 14 + po/colloquium.pot | 797 +++++++++++++++++++++++++++++++++++++++++++++++-- po/de.po | 797 +++++++++++++++++++++++++++++++++++++++++++++++-- src/colloquium.c | 1 - src/debugger.c | 1 - src/frame.c | 111 +++---- src/imagestore.c | 7 +- src/narrative_window.c | 42 +-- src/pr_clock.c | 29 +- src/presentation.c | 20 +- src/print.c | 5 +- src/render.c | 4 +- src/sc_editor.c | 30 +- src/sc_interp.c | 49 +-- src/sc_parse.c | 33 +- src/slide_window.c | 1 + src/slideshow.c | 7 +- src/testcard.c | 22 +- src/utils.c | 4 +- src/utils.h | 1 + 20 files changed, 1753 insertions(+), 222 deletions(-) diff --git a/po/POTFILES b/po/POTFILES index e5ad4bf..0f573fc 100644 --- a/po/POTFILES +++ b/po/POTFILES @@ -1,2 +1,16 @@ src/colloquium.c src/debugger.c +src/frame.c +src/imagestore.c +src/narrative_window.c +src/pr_clock.c +src/presentation.c +src/print.c +src/render.c +src/sc_editor.c +src/sc_interp.c +src/sc_parse.c +src/slideshow.c +src/slide_window.c +src/testcard.c +src/utils.c diff --git a/po/colloquium.pot b/po/colloquium.pot index 30152f5..10fe97e 100644 --- a/po/colloquium.pot +++ b/po/colloquium.pot @@ -8,62 +8,63 @@ msgid "" msgstr "" "Project-Id-Version: colloquium\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-04-12 12:53+0200\n" +"POT-Creation-Date: 2018-04-15 17:09+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \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" #. Description of the program -#: src/colloquium.c:113 +#: src/colloquium.c:112 msgid "Narrative-based presentation system" msgstr "" -#: src/colloquium.c:136 +#: src/colloquium.c:135 msgid "translator-credits" msgstr "" -#: src/colloquium.c:162 +#: src/colloquium.c:161 #, c-format msgid "WTF? Too many files\n" msgstr "" -#: src/colloquium.c:186 +#: src/colloquium.c:185 #, c-format msgid "Failed to convert file list\n" msgstr "" -#: src/colloquium.c:209 +#: src/colloquium.c:208 msgid "Open Presentation" msgstr "" -#: src/colloquium.c:212 +#: src/colloquium.c:211 src/narrative_window.c:129 src/narrative_window.c:326 +#: src/narrative_window.c:486 msgid "_Cancel" msgstr "" -#: src/colloquium.c:213 +#: src/colloquium.c:212 src/narrative_window.c:327 msgid "_Open" msgstr "" -#: src/colloquium.c:248 +#: src/colloquium.c:247 #, c-format msgid "Failed to load presentation '%s'\n" msgstr "" -#: src/colloquium.c:268 +#: src/colloquium.c:267 #, c-format msgid "Failed to create config\n" msgstr "" -#: src/colloquium.c:292 +#: src/colloquium.c:291 #, c-format msgid "Don't understand '%s', assuming false\n" msgstr "" -#: src/colloquium.c:304 +#: src/colloquium.c:303 #, c-format msgid "Failed to open config %s\n" msgstr "" @@ -72,24 +73,24 @@ msgstr "" #. * desktop environment. All the entries are already in the #. * normal menus, so don't let GTK create a fallback menu in the #. * menu bar. -#: src/colloquium.c:360 +#: src/colloquium.c:359 #, c-format msgid "Using app menu\n" msgstr "" -#: src/colloquium.c:379 +#: src/colloquium.c:378 #, c-format msgid "Failed to create config folder\n" msgstr "" -#: src/colloquium.c:448 +#: src/colloquium.c:447 #, c-format msgid "" "Syntax: %s [options] []\n" "\n" msgstr "" -#: src/colloquium.c:449 +#: src/colloquium.c:448 #, c-format msgid "" "A tiny presentation program.\n" @@ -98,27 +99,779 @@ msgid "" msgstr "" #. Text paragraph -#: src/debugger.c:90 +#: src/debugger.c:89 msgid "text" msgstr "" #. Callback paragraph -#: src/debugger.c:93 +#: src/debugger.c:92 msgid "callback" msgstr "" #. Unknown paragraph type -#: src/debugger.c:96 +#: src/debugger.c:95 msgid "unknown" msgstr "" #. How many text runs -#: src/debugger.c:108 +#: src/debugger.c:107 #, c-format msgid " %i runs" msgstr "" #. Failed to get debug info for paragraph -#: src/debugger.c:116 +#: src/debugger.c:115 msgid "Error" msgstr "" + +#: src/frame.c:120 +#, c-format +msgid "Couldn't allocate children\n" +msgstr "" + +#: src/frame.c:197 +#, c-format +msgid "%s%p (%.2f x %.2f)\n" +msgstr "" + +#: src/frame.c:233 +#, c-format +msgid "Couldn't find parent when deleting frame.\n" +msgstr "" + +#: src/frame.c:247 +#, c-format +msgid "Couldn't find child when deleting frame.\n" +msgstr "" + +#: src/frame.c:278 +#, c-format +msgid "NULL run passed to run_text_len\n" +msgstr "" + +#: src/frame.c:283 +#, c-format +msgid "NULL rscblock in run_text_len\n" +msgstr "" + +#: src/frame.c:288 +#, c-format +msgid "NULL rscblock contents in run_text_len\n" +msgstr "" + +#: src/frame.c:326 +#, c-format +msgid "Couldn't allocate combined text (%lli)\n" +msgstr "" + +#: src/frame.c:407 +#, c-format +msgid "Failed to add run.\n" +msgstr "" + +#: src/frame.c:462 +#, c-format +msgid "insert_paragraph(): pos too high!\n" +msgstr "" + +#: src/frame.c:497 +#, c-format +msgid "Failed to add callback paragraph\n" +msgstr "" + +#: src/frame.c:526 +#, c-format +msgid "Adding image without ImageStore!\n" +msgstr "" + +#: src/frame.c:535 +#, c-format +msgid "Failed to add image paragraph\n" +msgstr "" + +#: src/frame.c:541 +#, c-format +msgid "Couldn't get size for %s\n" +msgstr "" + +#: src/frame.c:643 +#, c-format +msgid "surf = NULL!\n" +msgstr "" + +#: src/frame.c:687 +#, c-format +msgid "para %i, pos %li, trail %i\n" +msgstr "" + +#: src/frame.c:729 +#, c-format +msgid "Need to add run, but paragraph not editable\n" +msgstr "" + +#: src/frame.c:737 +#, c-format +msgid "Couldn't prepend block\n" +msgstr "" + +#: src/frame.c:764 src/frame.c:807 src/frame.c:838 +#, c-format +msgid "Cursor frame is NULL.\n" +msgstr "" + +#: src/frame.c:786 +#, c-format +msgid "No paragraphs in frame.\n" +msgstr "" + +#: src/frame.c:812 +#, c-format +msgid "Highlight paragraph number is too high!\n" +msgstr "" + +#: src/frame.c:843 +#, c-format +msgid "Cursor paragraph number is too high!\n" +msgstr "" + +#: src/frame.c:967 +#, c-format +msgid "pos_trail_to_offset: Offset too high\n" +msgstr "" + +#: src/frame.c:972 +#, c-format +msgid "pos_trail_to_offset: No runs\n" +msgstr "" + +#: src/frame.c:981 +#, c-format +msgid "pos_trail_to_offset: No run\n" +msgstr "" + +#: src/frame.c:986 +#, c-format +msgid "pos_trail_to_offset: SCBlock = NULL?\n" +msgstr "" + +#: src/frame.c:991 +#, c-format +msgid "pos_trail_to_offset: No contents (%p name=%s, options=%s)\n" +msgstr "" + +#: src/frame.c:1009 +#, c-format +msgid "" +"Offset outside string! '%s'\n" +"char_offs %li offs %li len %li\n" +msgstr "" + +#: src/frame.c:1027 +#, c-format +msgid "Frame is NULL.\n" +msgstr "" + +#: src/frame.c:1032 +#, c-format +msgid "Paragraph number is too high!\n" +msgstr "" + +#: src/frame.c:1039 +#, c-format +msgid "Paragraph is not editable.\n" +msgstr "" + +#: src/frame.c:1044 +#, c-format +msgid "Paragraph is not text.\n" +msgstr "" + +#: src/frame.c:1051 +#, c-format +msgid "Couldn't find run!\n" +msgstr "" + +#: src/frame.c:1066 src/frame.c:1806 +#, c-format +msgid "Couldn't find run to insert into.\n" +msgstr "" + +#: src/frame.c:1071 +#, c-format +msgid "No runs in paragraph?\n" +msgstr "" + +#: src/frame.c:1174 +#, c-format +msgid "deleting run %i of %i from para %p\n" +msgstr "" + +#: src/frame.c:1268 +#, c-format +msgid "Couldn't find paragraph %p\n" +msgstr "" + +#: src/frame.c:1290 +#, c-format +msgid "Couldn't find paragraph to delete (%p)\n" +msgstr "" + +#: src/frame.c:1294 +#, c-format +msgid "deleting paragraph %i (%p)\n" +msgstr "" + +#: src/frame.c:1321 +#, c-format +msgid "Couldn't find block %p between paragraphs %p and %p\n" +msgstr "" + +#: src/frame.c:1343 +#, c-format +msgid "Failed to allocate merged runs.\n" +msgstr "" + +#: src/frame.c:1386 +#, c-format +msgid "Failed to merge paragraphs\n" +msgstr "" + +#: src/frame.c:1402 +#, c-format +msgid "Couldn't find paragraphs to merge by newpara\n" +msgstr "" + +#: src/frame.c:1463 +#, c-format +msgid "Delete outside editable region\n" +msgstr "" + +#: src/frame.c:1599 +#, c-format +msgid "Paragraph %p\n" +msgstr "" + +#: src/frame.c:1603 +#, c-format +msgid "%i runs:\n" +msgstr "" + +#: src/frame.c:1605 +#, c-format +msgid " Run %2i: SCBlock %p/%p %s '%s'\n" +msgstr "" + +#: src/frame.c:1612 +#, c-format +msgid " Image: %s\n" +msgstr "" + +#: src/frame.c:1614 +#, c-format +msgid " Other paragraph type\n" +msgstr "" + +#: src/frame.c:1632 src/sc_editor.c:844 +#, c-format +msgid "Failed to insert paragraph\n" +msgstr "" + +#: src/imagestore.c:216 +#, c-format +msgid "Couldn't allocate memory.\n" +msgstr "" + +#: src/imagestore.c:330 +#, c-format +msgid "Store %p contains %i records.\n" +msgstr "" + +#: src/imagestore.c:334 +#, c-format +msgid "%s :\n" +msgstr "" + +#: src/narrative_window.c:108 +msgid "Failed to save presentation" +msgstr "" + +#: src/narrative_window.c:126 +msgid "Save Presentation" +msgstr "" + +#: src/narrative_window.c:130 +msgid "_Save" +msgstr "" + +#: src/narrative_window.c:172 +#, c-format +msgid "Not a slide!\n" +msgstr "" + +#: src/narrative_window.c:299 +#, c-format +msgid "Not a style sheet\n" +msgstr "" + +#: src/narrative_window.c:302 +#, c-format +msgid "Failed to load\n" +msgstr "" + +#: src/narrative_window.c:323 +msgid "Load stylesheet" +msgstr "" + +#: src/narrative_window.c:357 +#, c-format +msgid "Failed to split paragraph\n" +msgstr "" + +#: src/narrative_window.c:483 +msgid "Export PDF" +msgstr "" + +#: src/narrative_window.c:487 +msgid "_Export" +msgstr "" + +#: src/narrative_window.c:784 +#, c-format +msgid "Narrative window is already open!\n" +msgstr "" + +#: src/narrative_window.c:836 +msgid "Start slideshow" +msgstr "" + +#: src/narrative_window.c:847 +msgid "Add slide" +msgstr "" + +#: src/narrative_window.c:857 +msgid "First slide" +msgstr "" + +#: src/narrative_window.c:864 +msgid "Previous slide" +msgstr "" + +#: src/narrative_window.c:871 +msgid "Next slide" +msgstr "" + +#: src/narrative_window.c:878 +msgid "Last slide" +msgstr "" + +#: src/pr_clock.c:270 +msgid "Timer is NOT running!" +msgstr "" + +#: src/pr_clock.c:285 +#, c-format +msgid "Invalid time '%s'\n" +msgstr "" + +#: src/pr_clock.c:329 src/pr_clock.c:380 +msgid "Start" +msgstr "" + +#: src/pr_clock.c:338 +msgid "Stop" +msgstr "" + +#: src/pr_clock.c:372 +msgid "Length (mins):" +msgstr "" + +#: src/pr_clock.c:373 +msgid "Length (mins):" +msgstr "" + +#: src/pr_clock.c:383 +msgid "Reset" +msgstr "" + +#: src/pr_clock.c:386 +msgid "Set position" +msgstr "" + +#: src/pr_clock.c:399 +msgid "Time elapsed" +msgstr "" + +#: src/pr_clock.c:400 +msgid "Time elapsed" +msgstr "" + +#: src/pr_clock.c:402 +msgid "Time remaining" +msgstr "" + +#: src/pr_clock.c:403 +msgid "Time remaining" +msgstr "" + +#: src/pr_clock.c:434 +msgid "Presentation clock" +msgstr "" + +#: src/presentation.c:60 +msgid "(untitled)" +msgstr "" + +#: src/presentation.c:104 +#, c-format +msgid "Open failed: %s\n" +msgstr "" + +#: src/presentation.c:164 +#, c-format +msgid "Couldn't find first slide!\n" +msgstr "" + +#: src/presentation.c:182 +#, c-format +msgid "Couldn't find last slide!\n" +msgstr "" + +#: src/presentation.c:203 +#, c-format +msgid "Couldn't find next slide!\n" +msgstr "" + +#: src/presentation.c:224 +#, c-format +msgid "Couldn't find prev slide!\n" +msgstr "" + +#: src/presentation.c:270 +#, c-format +msgid "Duplicate style sheet!\n" +msgstr "" + +#: src/presentation.c:277 +#, c-format +msgid "No style sheet.\n" +msgstr "" + +#: src/presentation.c:310 +#, c-format +msgid "Failed to load '%s'\n" +msgstr "" + +#: src/presentation.c:323 +#, c-format +msgid "Parse error.\n" +msgstr "" + +#: src/print.c:90 +msgid "Print the slides only" +msgstr "" + +#: src/print.c:92 +msgid "Print the narrative" +msgstr "" + +#: src/render.c:194 +#, c-format +msgid "Failed to set up interpreter.\n" +msgstr "" + +#: src/render.c:293 +#, c-format +msgid "Couldn't create Cairo surface\n" +msgstr "" + +#: src/sc_editor.c:73 +#, c-format +msgid "Paragraphs in current frame:\n" +msgstr "" + +#. FIXME: Implement this +#: src/sc_editor.c:769 +#, c-format +msgid "Deleting non-text paragraph\n" +msgstr "" + +#: src/sc_editor.c:810 +#, c-format +msgid "Position not editable\n" +msgstr "" + +#: src/sc_editor.c:831 +#, c-format +msgid "No SCBlock for para\n" +msgstr "" + +#: src/sc_editor.c:838 +#, c-format +msgid "Failed to add SCBlock\n" +msgstr "" + +#: src/sc_editor.c:1424 +#, c-format +msgid "Release on pointless drag.\n" +msgstr "" + +#: src/sc_editor.c:1439 +#, c-format +msgid "Failed to create frame!\n" +msgstr "" + +#: src/sc_editor.c:1592 +#, c-format +msgid "Cursor frame block = %p\n" +msgstr "" + +#: src/sc_editor.c:1593 src/sc_editor.c:1601 +#, c-format +msgid "Editor top block = %p\n" +msgstr "" + +#: src/sc_editor.c:1600 +#, c-format +msgid "Debugging the top frame:\n" +msgstr "" + +#: src/sc_editor.c:1805 +#, c-format +msgid "Failed to allocate SC\n" +msgstr "" + +#: src/sc_editor.c:2036 +#, c-format +msgid "WARNING: Changing imagestore\n" +msgstr "" + +#: src/sc_editor.c:2080 +#, c-format +msgid "Failed to load background: %s\n" +msgstr "" + +#: src/sc_interp.c:189 +#, c-format +msgid "Failed to grow callback list\n" +msgstr "" + +#: src/sc_interp.c:214 +#, c-format +msgid "WARNING: Interpreter already has a callback list.\n" +msgstr "" + +#: src/sc_interp.c:329 +#, c-format +msgid "Couldn't load font '%s' (font map %p, pc %p)\n" +msgstr "" + +#: src/sc_interp.c:350 +#, c-format +msgid "Couldn't describe font.\n" +msgstr "" + +#: src/sc_interp.c:384 +#, c-format +msgid "Invalid font size '%s'\n" +msgstr "" + +#: src/sc_interp.c:435 src/sc_interp.c:460 +#, c-format +msgid "Invalid colour\n" +msgstr "" + +#: src/sc_interp.c:488 src/sc_interp.c:494 +#, c-format +msgid "Invalid bg gradient spec '%s'\n" +msgstr "" + +#: src/sc_interp.c:528 +#, c-format +msgid "Failed to add to stack.\n" +msgstr "" + +#: src/sc_interp.c:672 +#, c-format +msgid "Invalid size '%s'\n" +msgstr "" + +#: src/sc_interp.c:686 +#, c-format +msgid "Invalid tuple '%s'\n" +msgstr "" + +#: src/sc_interp.c:754 +#, c-format +msgid "Invalid units in '%s'\n" +msgstr "" + +#: src/sc_interp.c:819 +#, c-format +msgid "Invalid dimensions '%s'\n" +msgstr "" + +#: src/sc_interp.c:832 +#, c-format +msgid "Unrecognised frame option '%s'\n" +msgstr "" + +#: src/sc_interp.c:889 +#, c-format +msgid "Unterminated filename?\n" +msgstr "" + +#: src/sc_interp.c:898 +#, c-format +msgid "Unrecognised image option '%s'\n" +msgstr "" + +#: src/sc_interp.c:1045 +#, c-format +msgid "Invalid image options '%s'\n" +msgstr "" + +#: src/sc_interp.c:1061 +#, c-format +msgid "Failed to add frame.\n" +msgstr "" + +#: src/sc_interp.c:1296 +#, c-format +msgid "Failed to add macro.\n" +msgstr "" + +#: src/sc_interp.c:1330 +#, c-format +msgid "Duplicate template '%s'\n" +msgstr "" + +#: src/sc_interp.c:1342 +#, c-format +msgid "Failed to add templates\n" +msgstr "" + +#: src/sc_interp.c:1371 +#, c-format +msgid "Style sheet isn't a style sheet.\n" +msgstr "" + +#: src/sc_parse.c:116 +#, c-format +msgid "Couldn't find previous\n" +msgstr "" + +#: src/sc_parse.c:270 +#, c-format +msgid "Substituting nothing!\n" +msgstr "" + +#: src/sc_parse.c:292 +#, c-format +msgid "Unlinking at top\n" +msgstr "" + +#: src/sc_parse.c:296 +#, c-format +msgid "Couldn't find block parent!\n" +msgstr "" + +#: src/sc_parse.c:422 +#, c-format +msgid "Failed to serialise block\n" +msgstr "" + +#: src/sc_parse.c:427 +#, c-format +msgid "Write failed: %s\n" +msgstr "" + +#: src/sc_parse.c:550 +#, c-format +msgid "Couldn't find end of options '%s'\n" +msgstr "" + +#: src/sc_parse.c:562 +#, c-format +msgid "Couldn't find end of content '%s'\n" +msgstr "" + +#: src/sc_parse.c:660 src/sc_parse.c:678 src/sc_parse.c:703 +#, c-format +msgid "Block add failed.\n" +msgstr "" + +#: src/sc_parse.c:670 +#, c-format +msgid "Parse error\n" +msgstr "" + +#: src/sc_parse.c:720 +#, c-format +msgid "sc_block_set_name: NULL block\n" +msgstr "" + +#: src/sc_parse.c:799 +#, c-format +msgid "Deleting text from block \\%s\n" +msgstr "" + +#: src/sc_parse.c:812 +#, c-format +msgid "Invalid delete: %i %i %i\n" +msgstr "" + +#: src/sc_parse.c:865 +#, c-format +msgid "Splitting a block with a child!\n" +msgstr "" + +#: src/slideshow.c:220 src/testcard.c:273 +#, c-format +msgid "Single monitor mode\n" +msgstr "" + +#: src/slideshow.c:224 src/testcard.c:276 +#, c-format +msgid "Dual monitor mode\n" +msgstr "" + +#: src/slideshow.c:239 +msgid "Presentation slide show is running" +msgstr "" + +#: src/testcard.c:177 +#, c-format +msgid "" +"Colloquium %s test card\n" +"Screen resolution %.0f × %.0f\n" +"Slide resolution %i × %i" +msgstr "" + +#: src/testcard.c:197 +msgid "Red" +msgstr "" + +#: src/testcard.c:198 +msgid "Green" +msgstr "" + +#: src/testcard.c:199 +msgid "Blue" +msgstr "" + +#: src/testcard.c:200 +msgid "Yellow" +msgstr "" + +#: src/testcard.c:201 +msgid "Pink" +msgstr "" + +#: src/testcard.c:202 +msgid "Cyan" +msgstr "" + +#: src/utils.c:130 +#, c-format +msgid "Failed to allocate memory\n" +msgstr "" diff --git a/po/de.po b/po/de.po index eab52bd..5a3bf0c 100644 --- a/po/de.po +++ b/po/de.po @@ -7,63 +7,64 @@ msgid "" msgstr "" "Project-Id-Version: colloquium\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-04-12 12:53+0200\n" +"POT-Creation-Date: 2018-04-15 17:09+0200\n" "PO-Revision-Date: 2018-04-10 23:10+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: de\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. Description of the program -#: src/colloquium.c:113 +#: src/colloquium.c:112 msgid "Narrative-based presentation system" msgstr "Erzählungsbasiertes Präsentationssystem" -#: src/colloquium.c:136 +#: src/colloquium.c:135 msgid "translator-credits" msgstr "A. N. Other" -#: src/colloquium.c:162 +#: src/colloquium.c:161 #, c-format msgid "WTF? Too many files\n" msgstr "" -#: src/colloquium.c:186 +#: src/colloquium.c:185 #, c-format msgid "Failed to convert file list\n" msgstr "" -#: src/colloquium.c:209 +#: src/colloquium.c:208 msgid "Open Presentation" msgstr "" -#: src/colloquium.c:212 +#: src/colloquium.c:211 src/narrative_window.c:129 src/narrative_window.c:326 +#: src/narrative_window.c:486 msgid "_Cancel" msgstr "" -#: src/colloquium.c:213 +#: src/colloquium.c:212 src/narrative_window.c:327 msgid "_Open" msgstr "" -#: src/colloquium.c:248 +#: src/colloquium.c:247 #, c-format msgid "Failed to load presentation '%s'\n" msgstr "" -#: src/colloquium.c:268 +#: src/colloquium.c:267 #, c-format msgid "Failed to create config\n" msgstr "" -#: src/colloquium.c:292 +#: src/colloquium.c:291 #, c-format msgid "Don't understand '%s', assuming false\n" msgstr "" -#: src/colloquium.c:304 +#: src/colloquium.c:303 #, c-format msgid "Failed to open config %s\n" msgstr "" @@ -72,24 +73,24 @@ msgstr "" #. * desktop environment. All the entries are already in the #. * normal menus, so don't let GTK create a fallback menu in the #. * menu bar. -#: src/colloquium.c:360 +#: src/colloquium.c:359 #, c-format msgid "Using app menu\n" msgstr "" -#: src/colloquium.c:379 +#: src/colloquium.c:378 #, c-format msgid "Failed to create config folder\n" msgstr "" -#: src/colloquium.c:448 +#: src/colloquium.c:447 #, c-format msgid "" "Syntax: %s [options] []\n" "\n" msgstr "" -#: src/colloquium.c:449 +#: src/colloquium.c:448 #, c-format msgid "" "A tiny presentation program.\n" @@ -98,27 +99,779 @@ msgid "" msgstr "" #. Text paragraph -#: src/debugger.c:90 +#: src/debugger.c:89 msgid "text" msgstr "" #. Callback paragraph -#: src/debugger.c:93 +#: src/debugger.c:92 msgid "callback" msgstr "" #. Unknown paragraph type -#: src/debugger.c:96 +#: src/debugger.c:95 msgid "unknown" msgstr "" #. How many text runs -#: src/debugger.c:108 +#: src/debugger.c:107 #, c-format msgid " %i runs" msgstr "" #. Failed to get debug info for paragraph -#: src/debugger.c:116 +#: src/debugger.c:115 msgid "Error" msgstr "" + +#: src/frame.c:120 +#, c-format +msgid "Couldn't allocate children\n" +msgstr "" + +#: src/frame.c:197 +#, c-format +msgid "%s%p (%.2f x %.2f)\n" +msgstr "" + +#: src/frame.c:233 +#, c-format +msgid "Couldn't find parent when deleting frame.\n" +msgstr "" + +#: src/frame.c:247 +#, c-format +msgid "Couldn't find child when deleting frame.\n" +msgstr "" + +#: src/frame.c:278 +#, c-format +msgid "NULL run passed to run_text_len\n" +msgstr "" + +#: src/frame.c:283 +#, c-format +msgid "NULL rscblock in run_text_len\n" +msgstr "" + +#: src/frame.c:288 +#, c-format +msgid "NULL rscblock contents in run_text_len\n" +msgstr "" + +#: src/frame.c:326 +#, c-format +msgid "Couldn't allocate combined text (%lli)\n" +msgstr "" + +#: src/frame.c:407 +#, c-format +msgid "Failed to add run.\n" +msgstr "" + +#: src/frame.c:462 +#, c-format +msgid "insert_paragraph(): pos too high!\n" +msgstr "" + +#: src/frame.c:497 +#, c-format +msgid "Failed to add callback paragraph\n" +msgstr "" + +#: src/frame.c:526 +#, c-format +msgid "Adding image without ImageStore!\n" +msgstr "" + +#: src/frame.c:535 +#, c-format +msgid "Failed to add image paragraph\n" +msgstr "" + +#: src/frame.c:541 +#, c-format +msgid "Couldn't get size for %s\n" +msgstr "" + +#: src/frame.c:643 +#, c-format +msgid "surf = NULL!\n" +msgstr "" + +#: src/frame.c:687 +#, c-format +msgid "para %i, pos %li, trail %i\n" +msgstr "" + +#: src/frame.c:729 +#, c-format +msgid "Need to add run, but paragraph not editable\n" +msgstr "" + +#: src/frame.c:737 +#, c-format +msgid "Couldn't prepend block\n" +msgstr "" + +#: src/frame.c:764 src/frame.c:807 src/frame.c:838 +#, c-format +msgid "Cursor frame is NULL.\n" +msgstr "" + +#: src/frame.c:786 +#, c-format +msgid "No paragraphs in frame.\n" +msgstr "" + +#: src/frame.c:812 +#, c-format +msgid "Highlight paragraph number is too high!\n" +msgstr "" + +#: src/frame.c:843 +#, c-format +msgid "Cursor paragraph number is too high!\n" +msgstr "" + +#: src/frame.c:967 +#, c-format +msgid "pos_trail_to_offset: Offset too high\n" +msgstr "" + +#: src/frame.c:972 +#, c-format +msgid "pos_trail_to_offset: No runs\n" +msgstr "" + +#: src/frame.c:981 +#, c-format +msgid "pos_trail_to_offset: No run\n" +msgstr "" + +#: src/frame.c:986 +#, c-format +msgid "pos_trail_to_offset: SCBlock = NULL?\n" +msgstr "" + +#: src/frame.c:991 +#, c-format +msgid "pos_trail_to_offset: No contents (%p name=%s, options=%s)\n" +msgstr "" + +#: src/frame.c:1009 +#, c-format +msgid "" +"Offset outside string! '%s'\n" +"char_offs %li offs %li len %li\n" +msgstr "" + +#: src/frame.c:1027 +#, c-format +msgid "Frame is NULL.\n" +msgstr "" + +#: src/frame.c:1032 +#, c-format +msgid "Paragraph number is too high!\n" +msgstr "" + +#: src/frame.c:1039 +#, c-format +msgid "Paragraph is not editable.\n" +msgstr "" + +#: src/frame.c:1044 +#, c-format +msgid "Paragraph is not text.\n" +msgstr "" + +#: src/frame.c:1051 +#, c-format +msgid "Couldn't find run!\n" +msgstr "" + +#: src/frame.c:1066 src/frame.c:1806 +#, c-format +msgid "Couldn't find run to insert into.\n" +msgstr "" + +#: src/frame.c:1071 +#, c-format +msgid "No runs in paragraph?\n" +msgstr "" + +#: src/frame.c:1174 +#, c-format +msgid "deleting run %i of %i from para %p\n" +msgstr "" + +#: src/frame.c:1268 +#, c-format +msgid "Couldn't find paragraph %p\n" +msgstr "" + +#: src/frame.c:1290 +#, c-format +msgid "Couldn't find paragraph to delete (%p)\n" +msgstr "" + +#: src/frame.c:1294 +#, c-format +msgid "deleting paragraph %i (%p)\n" +msgstr "" + +#: src/frame.c:1321 +#, c-format +msgid "Couldn't find block %p between paragraphs %p and %p\n" +msgstr "" + +#: src/frame.c:1343 +#, c-format +msgid "Failed to allocate merged runs.\n" +msgstr "" + +#: src/frame.c:1386 +#, c-format +msgid "Failed to merge paragraphs\n" +msgstr "" + +#: src/frame.c:1402 +#, c-format +msgid "Couldn't find paragraphs to merge by newpara\n" +msgstr "" + +#: src/frame.c:1463 +#, c-format +msgid "Delete outside editable region\n" +msgstr "" + +#: src/frame.c:1599 +#, c-format +msgid "Paragraph %p\n" +msgstr "" + +#: src/frame.c:1603 +#, c-format +msgid "%i runs:\n" +msgstr "" + +#: src/frame.c:1605 +#, c-format +msgid " Run %2i: SCBlock %p/%p %s '%s'\n" +msgstr "" + +#: src/frame.c:1612 +#, c-format +msgid " Image: %s\n" +msgstr "" + +#: src/frame.c:1614 +#, c-format +msgid " Other paragraph type\n" +msgstr "" + +#: src/frame.c:1632 src/sc_editor.c:844 +#, c-format +msgid "Failed to insert paragraph\n" +msgstr "" + +#: src/imagestore.c:216 +#, c-format +msgid "Couldn't allocate memory.\n" +msgstr "" + +#: src/imagestore.c:330 +#, c-format +msgid "Store %p contains %i records.\n" +msgstr "" + +#: src/imagestore.c:334 +#, c-format +msgid "%s :\n" +msgstr "" + +#: src/narrative_window.c:108 +msgid "Failed to save presentation" +msgstr "" + +#: src/narrative_window.c:126 +msgid "Save Presentation" +msgstr "" + +#: src/narrative_window.c:130 +msgid "_Save" +msgstr "" + +#: src/narrative_window.c:172 +#, c-format +msgid "Not a slide!\n" +msgstr "" + +#: src/narrative_window.c:299 +#, c-format +msgid "Not a style sheet\n" +msgstr "" + +#: src/narrative_window.c:302 +#, c-format +msgid "Failed to load\n" +msgstr "" + +#: src/narrative_window.c:323 +msgid "Load stylesheet" +msgstr "" + +#: src/narrative_window.c:357 +#, c-format +msgid "Failed to split paragraph\n" +msgstr "" + +#: src/narrative_window.c:483 +msgid "Export PDF" +msgstr "" + +#: src/narrative_window.c:487 +msgid "_Export" +msgstr "" + +#: src/narrative_window.c:784 +#, c-format +msgid "Narrative window is already open!\n" +msgstr "" + +#: src/narrative_window.c:836 +msgid "Start slideshow" +msgstr "" + +#: src/narrative_window.c:847 +msgid "Add slide" +msgstr "" + +#: src/narrative_window.c:857 +msgid "First slide" +msgstr "" + +#: src/narrative_window.c:864 +msgid "Previous slide" +msgstr "" + +#: src/narrative_window.c:871 +msgid "Next slide" +msgstr "" + +#: src/narrative_window.c:878 +msgid "Last slide" +msgstr "" + +#: src/pr_clock.c:270 +msgid "Timer is NOT running!" +msgstr "" + +#: src/pr_clock.c:285 +#, c-format +msgid "Invalid time '%s'\n" +msgstr "" + +#: src/pr_clock.c:329 src/pr_clock.c:380 +msgid "Start" +msgstr "" + +#: src/pr_clock.c:338 +msgid "Stop" +msgstr "" + +#: src/pr_clock.c:372 +msgid "Length (mins):" +msgstr "" + +#: src/pr_clock.c:373 +msgid "Length (mins):" +msgstr "" + +#: src/pr_clock.c:383 +msgid "Reset" +msgstr "" + +#: src/pr_clock.c:386 +msgid "Set position" +msgstr "" + +#: src/pr_clock.c:399 +msgid "Time elapsed" +msgstr "" + +#: src/pr_clock.c:400 +msgid "Time elapsed" +msgstr "" + +#: src/pr_clock.c:402 +msgid "Time remaining" +msgstr "" + +#: src/pr_clock.c:403 +msgid "Time remaining" +msgstr "" + +#: src/pr_clock.c:434 +msgid "Presentation clock" +msgstr "" + +#: src/presentation.c:60 +msgid "(untitled)" +msgstr "" + +#: src/presentation.c:104 +#, c-format +msgid "Open failed: %s\n" +msgstr "" + +#: src/presentation.c:164 +#, c-format +msgid "Couldn't find first slide!\n" +msgstr "" + +#: src/presentation.c:182 +#, c-format +msgid "Couldn't find last slide!\n" +msgstr "" + +#: src/presentation.c:203 +#, c-format +msgid "Couldn't find next slide!\n" +msgstr "" + +#: src/presentation.c:224 +#, c-format +msgid "Couldn't find prev slide!\n" +msgstr "" + +#: src/presentation.c:270 +#, c-format +msgid "Duplicate style sheet!\n" +msgstr "" + +#: src/presentation.c:277 +#, c-format +msgid "No style sheet.\n" +msgstr "" + +#: src/presentation.c:310 +#, c-format +msgid "Failed to load '%s'\n" +msgstr "" + +#: src/presentation.c:323 +#, c-format +msgid "Parse error.\n" +msgstr "" + +#: src/print.c:90 +msgid "Print the slides only" +msgstr "" + +#: src/print.c:92 +msgid "Print the narrative" +msgstr "" + +#: src/render.c:194 +#, c-format +msgid "Failed to set up interpreter.\n" +msgstr "" + +#: src/render.c:293 +#, c-format +msgid "Couldn't create Cairo surface\n" +msgstr "" + +#: src/sc_editor.c:73 +#, c-format +msgid "Paragraphs in current frame:\n" +msgstr "" + +#. FIXME: Implement this +#: src/sc_editor.c:769 +#, c-format +msgid "Deleting non-text paragraph\n" +msgstr "" + +#: src/sc_editor.c:810 +#, c-format +msgid "Position not editable\n" +msgstr "" + +#: src/sc_editor.c:831 +#, c-format +msgid "No SCBlock for para\n" +msgstr "" + +#: src/sc_editor.c:838 +#, c-format +msgid "Failed to add SCBlock\n" +msgstr "" + +#: src/sc_editor.c:1424 +#, c-format +msgid "Release on pointless drag.\n" +msgstr "" + +#: src/sc_editor.c:1439 +#, c-format +msgid "Failed to create frame!\n" +msgstr "" + +#: src/sc_editor.c:1592 +#, c-format +msgid "Cursor frame block = %p\n" +msgstr "" + +#: src/sc_editor.c:1593 src/sc_editor.c:1601 +#, c-format +msgid "Editor top block = %p\n" +msgstr "" + +#: src/sc_editor.c:1600 +#, c-format +msgid "Debugging the top frame:\n" +msgstr "" + +#: src/sc_editor.c:1805 +#, c-format +msgid "Failed to allocate SC\n" +msgstr "" + +#: src/sc_editor.c:2036 +#, c-format +msgid "WARNING: Changing imagestore\n" +msgstr "" + +#: src/sc_editor.c:2080 +#, c-format +msgid "Failed to load background: %s\n" +msgstr "" + +#: src/sc_interp.c:189 +#, c-format +msgid "Failed to grow callback list\n" +msgstr "" + +#: src/sc_interp.c:214 +#, c-format +msgid "WARNING: Interpreter already has a callback list.\n" +msgstr "" + +#: src/sc_interp.c:329 +#, c-format +msgid "Couldn't load font '%s' (font map %p, pc %p)\n" +msgstr "" + +#: src/sc_interp.c:350 +#, c-format +msgid "Couldn't describe font.\n" +msgstr "" + +#: src/sc_interp.c:384 +#, c-format +msgid "Invalid font size '%s'\n" +msgstr "" + +#: src/sc_interp.c:435 src/sc_interp.c:460 +#, c-format +msgid "Invalid colour\n" +msgstr "" + +#: src/sc_interp.c:488 src/sc_interp.c:494 +#, c-format +msgid "Invalid bg gradient spec '%s'\n" +msgstr "" + +#: src/sc_interp.c:528 +#, c-format +msgid "Failed to add to stack.\n" +msgstr "" + +#: src/sc_interp.c:672 +#, c-format +msgid "Invalid size '%s'\n" +msgstr "" + +#: src/sc_interp.c:686 +#, c-format +msgid "Invalid tuple '%s'\n" +msgstr "" + +#: src/sc_interp.c:754 +#, c-format +msgid "Invalid units in '%s'\n" +msgstr "" + +#: src/sc_interp.c:819 +#, c-format +msgid "Invalid dimensions '%s'\n" +msgstr "" + +#: src/sc_interp.c:832 +#, c-format +msgid "Unrecognised frame option '%s'\n" +msgstr "" + +#: src/sc_interp.c:889 +#, c-format +msgid "Unterminated filename?\n" +msgstr "" + +#: src/sc_interp.c:898 +#, c-format +msgid "Unrecognised image option '%s'\n" +msgstr "" + +#: src/sc_interp.c:1045 +#, c-format +msgid "Invalid image options '%s'\n" +msgstr "" + +#: src/sc_interp.c:1061 +#, c-format +msgid "Failed to add frame.\n" +msgstr "" + +#: src/sc_interp.c:1296 +#, c-format +msgid "Failed to add macro.\n" +msgstr "" + +#: src/sc_interp.c:1330 +#, c-format +msgid "Duplicate template '%s'\n" +msgstr "" + +#: src/sc_interp.c:1342 +#, c-format +msgid "Failed to add templates\n" +msgstr "" + +#: src/sc_interp.c:1371 +#, c-format +msgid "Style sheet isn't a style sheet.\n" +msgstr "" + +#: src/sc_parse.c:116 +#, c-format +msgid "Couldn't find previous\n" +msgstr "" + +#: src/sc_parse.c:270 +#, c-format +msgid "Substituting nothing!\n" +msgstr "" + +#: src/sc_parse.c:292 +#, c-format +msgid "Unlinking at top\n" +msgstr "" + +#: src/sc_parse.c:296 +#, c-format +msgid "Couldn't find block parent!\n" +msgstr "" + +#: src/sc_parse.c:422 +#, c-format +msgid "Failed to serialise block\n" +msgstr "" + +#: src/sc_parse.c:427 +#, c-format +msgid "Write failed: %s\n" +msgstr "" + +#: src/sc_parse.c:550 +#, c-format +msgid "Couldn't find end of options '%s'\n" +msgstr "" + +#: src/sc_parse.c:562 +#, c-format +msgid "Couldn't find end of content '%s'\n" +msgstr "" + +#: src/sc_parse.c:660 src/sc_parse.c:678 src/sc_parse.c:703 +#, c-format +msgid "Block add failed.\n" +msgstr "" + +#: src/sc_parse.c:670 +#, c-format +msgid "Parse error\n" +msgstr "" + +#: src/sc_parse.c:720 +#, c-format +msgid "sc_block_set_name: NULL block\n" +msgstr "" + +#: src/sc_parse.c:799 +#, c-format +msgid "Deleting text from block \\%s\n" +msgstr "" + +#: src/sc_parse.c:812 +#, c-format +msgid "Invalid delete: %i %i %i\n" +msgstr "" + +#: src/sc_parse.c:865 +#, c-format +msgid "Splitting a block with a child!\n" +msgstr "" + +#: src/slideshow.c:220 src/testcard.c:273 +#, c-format +msgid "Single monitor mode\n" +msgstr "" + +#: src/slideshow.c:224 src/testcard.c:276 +#, c-format +msgid "Dual monitor mode\n" +msgstr "" + +#: src/slideshow.c:239 +msgid "Presentation slide show is running" +msgstr "" + +#: src/testcard.c:177 +#, c-format +msgid "" +"Colloquium %s test card\n" +"Screen resolution %.0f × %.0f\n" +"Slide resolution %i × %i" +msgstr "" + +#: src/testcard.c:197 +msgid "Red" +msgstr "" + +#: src/testcard.c:198 +msgid "Green" +msgstr "" + +#: src/testcard.c:199 +msgid "Blue" +msgstr "" + +#: src/testcard.c:200 +msgid "Yellow" +msgstr "" + +#: src/testcard.c:201 +msgid "Pink" +msgstr "" + +#: src/testcard.c:202 +msgid "Cyan" +msgstr "" + +#: src/utils.c:130 +#, c-format +msgid "Failed to allocate memory\n" +msgstr "" diff --git a/src/colloquium.c b/src/colloquium.c index 3e6c2bf..ea55c20 100644 --- a/src/colloquium.c +++ b/src/colloquium.c @@ -32,7 +32,6 @@ #include #include #include -#include #include "colloquium.h" #include "presentation.h" diff --git a/src/debugger.c b/src/debugger.c index 53c0596..edb79e1 100644 --- a/src/debugger.c +++ b/src/debugger.c @@ -29,7 +29,6 @@ #include #include #include -#include #include "presentation.h" #include "narrative_window.h" diff --git a/src/frame.c b/src/frame.c index 3c4451d..ff00530 100644 --- a/src/frame.c +++ b/src/frame.c @@ -34,6 +34,7 @@ #include "sc_parse.h" #include "frame.h" #include "imagestore.h" +#include "utils.h" struct text_run { @@ -116,7 +117,7 @@ struct frame *frame_new() n->children = NULL; n->max_children = 32; if ( alloc_ro(n) ) { - fprintf(stderr, "Couldn't allocate children\n"); + fprintf(stderr, _("Couldn't allocate children\n")); free(n); return NULL; } @@ -193,7 +194,7 @@ void show_hierarchy(struct frame *fr, const char *t) strcpy(tn, t); strcat(tn, " "); - printf("%s%p (%.2f x %.2f)\n", t, fr, fr->w, fr->h); + printf(_("%s%p (%.2f x %.2f)\n"), t, fr, fr->w, fr->h); for ( i=0; inum_children; i++ ) { show_hierarchy(fr->children[i], tn); @@ -229,7 +230,7 @@ void delete_subframe(struct frame *top, struct frame *fr) parent = find_parent(top, fr); if ( parent == NULL ) { - fprintf(stderr, "Couldn't find parent when deleting frame.\n"); + fprintf(stderr, _("Couldn't find parent when deleting frame.\n")); return; } @@ -243,7 +244,7 @@ void delete_subframe(struct frame *top, struct frame *fr) } if ( !found ) { - fprintf(stderr, "Couldn't find child when deleting frame.\n"); + fprintf(stderr, _("Couldn't find child when deleting frame.\n")); return; } @@ -274,17 +275,17 @@ struct frame *find_frame_with_scblocks(struct frame *fr, SCBlock *scblocks) static size_t run_text_len(const struct text_run *run) { if ( run == NULL ) { - fprintf(stderr, "NULL run passed to run_text_len\n"); + fprintf(stderr, _("NULL run passed to run_text_len\n")); return 0; } if ( run->rscblock == NULL ) { - fprintf(stderr, "NULL rscblock in run_text_len\n"); + fprintf(stderr, _("NULL rscblock in run_text_len\n")); return 0; } if ( sc_block_contents(run->rscblock) == NULL ) { - fprintf(stderr, "NULL rscblock contents in run_text_len\n"); + fprintf(stderr, _("NULL rscblock contents in run_text_len\n")); return 0; } @@ -322,7 +323,7 @@ void wrap_paragraph(Paragraph *para, PangoContext *pc, double w, /* Allocate the complete text */ text = malloc(total_len+1); if ( text == NULL ) { - fprintf(stderr, "Couldn't allocate combined text (%lli)\n", + fprintf(stderr, _("Couldn't allocate combined text (%lli)\n"), (long long int)total_len); return; } @@ -403,7 +404,7 @@ void add_run(Paragraph *para, SCBlock *scblock, SCBlock *rscblock, runs_new = realloc(para->runs, (para->n_runs+1)*sizeof(struct text_run)); if ( runs_new == NULL ) { - fprintf(stderr, "Failed to add run.\n"); + fprintf(stderr, _("Failed to add run.\n")); return; } @@ -458,7 +459,7 @@ Paragraph *insert_paragraph(struct frame *fr, int pos) int i; if ( pos >= fr->n_paras ) { - fprintf(stderr, "insert_paragraph(): pos too high!\n"); + fprintf(stderr, _("insert_paragraph(): pos too high!\n")); return NULL; } @@ -493,7 +494,7 @@ Paragraph *add_callback_para(struct frame *fr, SCBlock *bl, SCBlock *rbl, } else { pnew = create_paragraph(fr, bl, rbl); if ( pnew == NULL ) { - fprintf(stderr, "Failed to add callback paragraph\n"); + fprintf(stderr, _("Failed to add callback paragraph\n")); return NULL; } } @@ -522,7 +523,7 @@ void add_image_para(struct frame *fr, SCBlock *scblock, SCBlock *rscblock, int wi, hi; if ( is == NULL ) { - fprintf(stderr, "Adding image without ImageStore!\n"); + fprintf(stderr, _("Adding image without ImageStore!\n")); return; } @@ -531,13 +532,13 @@ void add_image_para(struct frame *fr, SCBlock *scblock, SCBlock *rscblock, } else { pnew = create_paragraph(fr, scblock, rscblock); if ( pnew == NULL ) { - fprintf(stderr, "Failed to add image paragraph\n"); + fprintf(stderr, _("Failed to add image paragraph\n")); return; } } if ( imagestore_get_size(is, filename, &wi, &hi) ) { - fprintf(stderr, "Couldn't get size for %s\n", filename); + fprintf(stderr, _("Couldn't get size for %s\n"), filename); wi = 100; hi = 100; } @@ -639,7 +640,7 @@ void render_paragraph(cairo_t *cr, Paragraph *para, ImageStore *is) if ( surf != NULL ) { render_from_surf(surf, cr, para->image_w, para->image_h, 0); } else { - printf("surf = NULL!\n"); + printf(_("surf = NULL!\n")); } break; @@ -683,7 +684,7 @@ static size_t text_para_pos(Paragraph *para, double x, double y, int *ptrail) void show_edit_pos(struct edit_pos a) { - printf("para %i, pos %li, trail %i\n", a.para, (long int)a.pos, a.trail); + printf(_("para %i, pos %li, trail %i\n"), a.para, (long int)a.pos, a.trail); } @@ -725,7 +726,7 @@ void ensure_run(struct frame *fr, struct edit_pos cpos) if ( para->type != PARA_TYPE_TEXT ) return; if ( para->scblock != para->rscblock ) { - fprintf(stderr, "Need to add run, but paragraph not editable\n"); + fprintf(stderr, _("Need to add run, but paragraph not editable\n")); return; } @@ -733,7 +734,7 @@ void ensure_run(struct frame *fr, struct edit_pos cpos) bl = sc_block_prepend(para->scblock, fr->scblocks); if ( bl == NULL ) { - fprintf(stderr, "Couldn't prepend block\n"); + fprintf(stderr, _("Couldn't prepend block\n")); return; } sc_block_set_contents(bl, strdup("")); @@ -760,7 +761,7 @@ int find_cursor(struct frame *fr, double x, double y, struct edit_pos *pos) int i; if ( fr == NULL ) { - fprintf(stderr, "Cursor frame is NULL.\n"); + fprintf(stderr, _("Cursor frame is NULL.\n")); return 1; } @@ -782,7 +783,7 @@ int find_cursor(struct frame *fr, double x, double y, struct edit_pos *pos) } if ( fr->n_paras == 0 ) { - printf("No paragraphs in frame.\n"); + printf(_("No paragraphs in frame.\n")); return 1; } @@ -803,12 +804,12 @@ int get_para_highlight(struct frame *fr, int cursor_para, double py = 0.0; if ( fr == NULL ) { - fprintf(stderr, "Cursor frame is NULL.\n"); + fprintf(stderr, _("Cursor frame is NULL.\n")); return 1; } if ( cursor_para >= fr->n_paras ) { - fprintf(stderr, "Highlight paragraph number is too high!\n"); + fprintf(stderr, _("Highlight paragraph number is too high!\n")); return 1; } @@ -834,12 +835,12 @@ int get_cursor_pos(struct frame *fr, int cursor_para, int cursor_pos, double py = 0.0; if ( fr == NULL ) { - fprintf(stderr, "Cursor frame is NULL.\n"); + fprintf(stderr, _("Cursor frame is NULL.\n")); return 1; } if ( cursor_para >= fr->n_paras ) { - fprintf(stderr, "Cursor paragraph number is too high!\n"); + fprintf(stderr, _("Cursor paragraph number is too high!\n")); return 1; } @@ -963,12 +964,12 @@ size_t pos_trail_to_offset(Paragraph *para, size_t offs, int trail) nrun = which_run(para, offs); if ( nrun == para->n_runs ) { - fprintf(stderr, "pos_trail_to_offset: Offset too high\n"); + fprintf(stderr, _("pos_trail_to_offset: Offset too high\n")); return 0; } if ( para->n_runs == 0 ) { - fprintf(stderr, "pos_trail_to_offset: No runs\n"); + fprintf(stderr, _("pos_trail_to_offset: No runs\n")); return 0; } @@ -977,18 +978,18 @@ size_t pos_trail_to_offset(Paragraph *para, size_t offs, int trail) if ( para->type != PARA_TYPE_TEXT ) return 0; if ( run == NULL ) { - fprintf(stderr, "pos_trail_to_offset: No run\n"); + fprintf(stderr, _("pos_trail_to_offset: No run\n")); return 0; } if ( run->scblock == NULL ) { - fprintf(stderr, "pos_trail_to_offset: SCBlock = NULL?\n"); + fprintf(stderr, _("pos_trail_to_offset: SCBlock = NULL?\n")); return 0; } if ( sc_block_contents(run->rscblock) == NULL ) { - fprintf(stderr, "pos_trail_to_offset: No contents " - "(%p name=%s, options=%s)\n", + fprintf(stderr, _("pos_trail_to_offset: No contents " + "(%p name=%s, options=%s)\n"), run->scblock, sc_block_name(run->scblock), sc_block_options(run->scblock)); return 0; @@ -1005,8 +1006,8 @@ size_t pos_trail_to_offset(Paragraph *para, size_t offs, int trail) char_offs += trail; if ( char_offs > g_utf8_strlen(run_text, -1) ) { - printf("Offset outside string! '%s'\n" - "char_offs %li offs %li len %li\n", + printf(_("Offset outside string! '%s'\n" + "char_offs %li offs %li len %li\n"), run_text, (long int)char_offs, (long int)offs, (long int)g_utf8_strlen(run_text, -1)); } @@ -1023,31 +1024,31 @@ int position_editable(struct frame *fr, struct edit_pos cp) size_t paraoffs; if ( fr == NULL ) { - fprintf(stderr, "Frame is NULL.\n"); + fprintf(stderr, _("Frame is NULL.\n")); return 0; } if ( cp.para >= fr->n_paras ) { - fprintf(stderr, "Paragraph number is too high!\n"); + fprintf(stderr, _("Paragraph number is too high!\n")); return 0; } para = fr->paras[cp.para]; if ( para->scblock != para->rscblock ) { - fprintf(stderr, "Paragraph is not editable.\n"); + fprintf(stderr, _("Paragraph is not editable.\n")); return 0; } if ( para->type != PARA_TYPE_TEXT ) { - fprintf(stderr, "Paragraph is not text.\n"); + fprintf(stderr, _("Paragraph is not text.\n")); return 0; } paraoffs = pos_trail_to_offset(para, cp.pos, cp.trail); run = which_run(para, paraoffs); if ( run == para->n_runs ) { - fprintf(stderr, "Couldn't find run!\n"); + fprintf(stderr, _("Couldn't find run!\n")); return 0; } @@ -1062,12 +1063,12 @@ void insert_text_in_paragraph(Paragraph *para, size_t offs, const char *t) /* Find which run we are in */ nrun = which_run(para, offs); if ( nrun == para->n_runs ) { - fprintf(stderr, "Couldn't find run to insert into.\n"); + fprintf(stderr, _("Couldn't find run to insert into.\n")); return; } if ( para->n_runs == 0 ) { - printf("No runs in paragraph?\n"); + printf(_("No runs in paragraph?\n")); } else { struct text_run *run; size_t run_offs; @@ -1170,7 +1171,7 @@ static int pos_to_run_number(struct frame *fr, struct edit_pos p) static void delete_run(Paragraph *para, int nrun) { - printf("deleting run %i of %i from para %p\n", nrun, para->n_runs, para); + printf(_("deleting run %i of %i from para %p\n"), nrun, para->n_runs, para); memmove(¶->runs[nrun], ¶->runs[nrun+1], (para->n_runs-nrun-1)*sizeof(struct text_run)); para->n_runs--; @@ -1264,7 +1265,7 @@ static int paragraph_number(struct frame *fr, Paragraph *p, int *err) for ( i=0; in_paras; i++ ) { if ( fr->paras[i] == p ) return i; } - fprintf(stderr, "Couldn't find paragraph %p\n", p); + fprintf(stderr, _("Couldn't find paragraph %p\n"), p); *err = 1; return 0; } @@ -1286,11 +1287,11 @@ static void delete_paragraph(struct frame *fr, Paragraph *para, int *pnp) { int pn = find_para(fr, para); if ( pn == fr->n_paras ) { - fprintf(stderr, "Couldn't find paragraph to delete (%p)\n", para); + fprintf(stderr, _("Couldn't find paragraph to delete (%p)\n"), para); return; } - printf("deleting paragraph %i (%p)\n", pn, para); + printf(_("deleting paragraph %i (%p)\n"), pn, para); memmove(&fr->paras[pn], &fr->paras[pn+1], (fr->n_paras-pn-1)*sizeof(Paragraph *)); @@ -1317,7 +1318,7 @@ static void delete_run_for_scblock(struct frame *fr, para = find_run_for_scblock(fr, pn1, pn2, bl, &run); if ( para == NULL ) { - fprintf(stderr, "Couldn't find block %p between paragraphs %p and %p\n", + fprintf(stderr, _("Couldn't find block %p between paragraphs %p and %p\n"), bl, p1, p2); return; } @@ -1339,7 +1340,7 @@ static signed int merge_paragraph_runs(Paragraph *p1, Paragraph *p2) runs_new = realloc(p1->runs, (p1->n_runs+p2->n_runs)*sizeof(struct text_run)); if ( runs_new == NULL ) { - fprintf(stderr, "Failed to allocate merged runs.\n"); + fprintf(stderr, _("Failed to allocate merged runs.\n")); return -1; } p1->runs = runs_new; @@ -1382,7 +1383,7 @@ static void merge_paragraphs_by_newpara(struct frame *fr, SCBlock *np) show_para(p2); spos = merge_paragraph_runs(p1, p2); if ( spos < 0 ) { - fprintf(stderr, "Failed to merge paragraphs\n"); + fprintf(stderr, _("Failed to merge paragraphs\n")); return; } printf("-------------------------------\n"); @@ -1398,7 +1399,7 @@ static void merge_paragraphs_by_newpara(struct frame *fr, SCBlock *np) } } - fprintf(stderr, "Couldn't find paragraphs to merge by newpara\n"); + fprintf(stderr, _("Couldn't find paragraphs to merge by newpara\n")); } @@ -1459,7 +1460,7 @@ void delete_text_from_frame(struct frame *fr, struct edit_pos p1, struct edit_po } if ( !position_editable(fr, p1) || !position_editable(fr, p2) ) { - fprintf(stderr, "Delete outside editable region\n"); + fprintf(stderr, _("Delete outside editable region\n")); return; } @@ -1595,22 +1596,22 @@ void delete_text_from_frame(struct frame *fr, struct edit_pos p1, struct edit_po void show_para(Paragraph *p) { int i; - printf("Paragraph %p\n", p); + printf(_("Paragraph %p\n"), p); if ( p->type == PARA_TYPE_TEXT ) { - printf("%i runs:\n", p->n_runs); + printf(_("%i runs:\n"), p->n_runs); for ( i=0; in_runs; i++ ) { - printf(" Run %2i: SCBlock %p/%p %s '%s'\n", + printf(_(" Run %2i: SCBlock %p/%p %s '%s'\n"), i, p->runs[i].scblock, p->runs[i].rscblock, pango_font_description_to_string(p->runs[i].fontdesc), sc_block_contents(p->runs[i].rscblock)); } } else if ( p->type == PARA_TYPE_IMAGE ) { - printf(" Image: %s\n", p->filename); + printf(_(" Image: %s\n"), p->filename); } else { - printf(" Other paragraph type\n"); + printf(_(" Other paragraph type\n")); } } @@ -1628,7 +1629,7 @@ static SCBlock *split_text_paragraph(struct frame *fr, int pn, size_t pos, pnew = insert_paragraph(fr, pn); if ( pnew == NULL ) { - fprintf(stderr, "Failed to insert paragraph\n"); + fprintf(stderr, _("Failed to insert paragraph\n")); return NULL; } @@ -1802,7 +1803,7 @@ int get_sc_pos(struct frame *fr, int pn, size_t pos, nrun = which_run(para, pos); if ( nrun == para->n_runs ) { - fprintf(stderr, "Couldn't find run to insert into.\n"); + fprintf(stderr, _("Couldn't find run to insert into.\n")); return 1; } run = ¶->runs[nrun]; diff --git a/src/imagestore.c b/src/imagestore.c index 7775f3b..b6297b7 100644 --- a/src/imagestore.c +++ b/src/imagestore.c @@ -36,6 +36,7 @@ #include #include "imagestore.h" +#include "utils.h" #define MAX_SIZES (32) @@ -212,7 +213,7 @@ static struct image_record *add_image_record(ImageStore *is, if ( is->n_images == is->max_images ) { if ( alloc_images(is, is->max_images+32) ) { - fprintf(stderr, "Couldn't allocate memory.\n"); + fprintf(stderr, _("Couldn't allocate memory.\n")); return NULL; } } @@ -326,11 +327,11 @@ void show_imagestore(ImageStore *is) { int i; - printf("Store %p contains %i records.\n", is, is->n_images); + printf(_("Store %p contains %i records.\n"), is, is->n_images); for ( i=0; in_images; i++ ) { - printf("%s :\n", is->images[i].filename); + printf(_("%s :\n"), is->images[i].filename); printf("\n"); } diff --git a/src/narrative_window.c b/src/narrative_window.c index 17885e1..551195e 100644 --- a/src/narrative_window.c +++ b/src/narrative_window.c @@ -105,7 +105,7 @@ static gint saveas_response_sig(GtkWidget *d, gint response, GFile *file = gtk_file_chooser_get_file(GTK_FILE_CHOOSER(d)); if ( save_presentation(nw->p, file) ) { - show_error(nw, "Failed to save presentation"); + show_error(nw, _("Failed to save presentation")); } g_object_unref(file); @@ -123,11 +123,11 @@ static void saveas_sig(GSimpleAction *action, GVariant *parameter, gpointer vp) GtkWidget *d; NarrativeWindow *nw = vp; - d = gtk_file_chooser_dialog_new("Save Presentation", + d = gtk_file_chooser_dialog_new(_("Save Presentation"), GTK_WINDOW(nw->window), GTK_FILE_CHOOSER_ACTION_SAVE, - "_Cancel", GTK_RESPONSE_CANCEL, - "_Save", GTK_RESPONSE_ACCEPT, + _("_Cancel"), GTK_RESPONSE_CANCEL, + _("_Save"), GTK_RESPONSE_ACCEPT, NULL); gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(d), TRUE); @@ -169,7 +169,7 @@ static void delete_slide_sig(GSimpleAction *action, GVariant *parameter, /* Get the SCBlock corresponding to the slide */ ns = sc_editor_get_cursor_bvp(nw->sceditor); if ( ns == NULL ) { - fprintf(stderr, "Not a slide!\n"); + fprintf(stderr, _("Not a slide!\n")); return; } @@ -296,10 +296,10 @@ static gint load_ss_response_sig(GtkWidget *d, gint response, nw->dummy_top); } else { - fprintf(stderr, "Not a style sheet\n"); + fprintf(stderr, _("Not a style sheet\n")); } } else { - fprintf(stderr, "Failed to load\n"); + fprintf(stderr, _("Failed to load\n")); } g_free(filename); @@ -320,11 +320,11 @@ static void load_ss_sig(GSimpleAction *action, GVariant *parameter, NarrativeWindow *nw = vp; GtkWidget *d; - d = gtk_file_chooser_dialog_new("Load stylesheet", + d = gtk_file_chooser_dialog_new(_("Load stylesheet"), GTK_WINDOW(nw->window), GTK_FILE_CHOOSER_ACTION_OPEN, - "_Cancel", GTK_RESPONSE_CANCEL, - "_Open", GTK_RESPONSE_ACCEPT, + _("_Cancel"), GTK_RESPONSE_CANCEL, + _("_Open"), GTK_RESPONSE_ACCEPT, NULL); g_signal_connect(G_OBJECT(d), "response", @@ -354,7 +354,7 @@ static void add_slide_sig(GSimpleAction *action, GVariant *parameter, if ( nsblock != NULL ) { sc_block_append_p(nsblock, templ); } else { - fprintf(stderr, "Failed to split paragraph\n"); + fprintf(stderr, _("Failed to split paragraph\n")); } sc_editor_set_scblock(nw->sceditor, nw->dummy_top); @@ -480,11 +480,11 @@ static void exportpdf_sig(GSimpleAction *action, GVariant *parameter, struct presentation *p = vp; GtkWidget *d; - d = gtk_file_chooser_dialog_new("Export PDF", + d = gtk_file_chooser_dialog_new(_("Export PDF"), NULL, GTK_FILE_CHOOSER_ACTION_SAVE, - "_Cancel", GTK_RESPONSE_CANCEL, - "_Export", GTK_RESPONSE_ACCEPT, + _("_Cancel"), GTK_RESPONSE_CANCEL, + _("_Export"), GTK_RESPONSE_ACCEPT, NULL); gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(d), TRUE); @@ -781,7 +781,7 @@ NarrativeWindow *narrative_window_new(struct presentation *p, GApplication *papp Colloquium *app = COLLOQUIUM(papp); if ( p->narrative_window != NULL ) { - fprintf(stderr, "Narrative window is already open!\n"); + fprintf(stderr, _("Narrative window is already open!\n")); return NULL; } @@ -833,7 +833,7 @@ NarrativeWindow *narrative_window_new(struct presentation *p, GApplication *papp /* Fullscreen */ image = gtk_image_new_from_icon_name("view-fullscreen", GTK_ICON_SIZE_LARGE_TOOLBAR); - button = gtk_tool_button_new(image, "Start slideshow"); + button = gtk_tool_button_new(image, _("Start slideshow")); gtk_actionable_set_action_name(GTK_ACTIONABLE(button), "win.startslideshow"); gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(button)); @@ -844,7 +844,7 @@ NarrativeWindow *narrative_window_new(struct presentation *p, GApplication *papp /* Add slide */ image = gtk_image_new_from_icon_name("list-add", GTK_ICON_SIZE_LARGE_TOOLBAR); - button = gtk_tool_button_new(image, "Add slide"); + button = gtk_tool_button_new(image, _("Add slide")); gtk_actionable_set_action_name(GTK_ACTIONABLE(button), "win.slide"); gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(button)); @@ -854,28 +854,28 @@ NarrativeWindow *narrative_window_new(struct presentation *p, GApplication *papp image = gtk_image_new_from_icon_name("go-top", GTK_ICON_SIZE_LARGE_TOOLBAR); - nw->bfirst = gtk_tool_button_new(image, "First slide"); + nw->bfirst = gtk_tool_button_new(image, _("First slide")); gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(nw->bfirst)); gtk_actionable_set_action_name(GTK_ACTIONABLE(nw->bfirst), "win.first"); image = gtk_image_new_from_icon_name("go-up", GTK_ICON_SIZE_LARGE_TOOLBAR); - nw->bprev = gtk_tool_button_new(image, "Previous slide"); + nw->bprev = gtk_tool_button_new(image, _("Previous slide")); gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(nw->bprev)); gtk_actionable_set_action_name(GTK_ACTIONABLE(nw->bprev), "win.prev"); image = gtk_image_new_from_icon_name("go-down", GTK_ICON_SIZE_LARGE_TOOLBAR); - nw->bnext = gtk_tool_button_new(image, "Next slide"); + nw->bnext = gtk_tool_button_new(image, _("Next slide")); gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(nw->bnext)); gtk_actionable_set_action_name(GTK_ACTIONABLE(nw->bnext), "win.next"); image = gtk_image_new_from_icon_name("go-bottom", GTK_ICON_SIZE_LARGE_TOOLBAR); - nw->blast = gtk_tool_button_new(image, "Last slide"); + nw->blast = gtk_tool_button_new(image, _("Last slide")); gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(nw->blast)); gtk_actionable_set_action_name(GTK_ACTIONABLE(nw->blast), "win.last"); diff --git a/src/pr_clock.c b/src/pr_clock.c index 82b9af5..f9fcbe4 100644 --- a/src/pr_clock.c +++ b/src/pr_clock.c @@ -32,6 +32,7 @@ #include "presentation.h" #include "pr_clock.h" +#include "utils.h" struct pr_clock @@ -266,7 +267,7 @@ static gboolean clock_draw_sig(GtkWidget *da, cairo_t *cr, struct pr_clock *n) CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD); cairo_set_source_rgb(cr, 0.0, 0.0, 0.0); - cairo_show_text(cr, "Timer is NOT running!"); + cairo_show_text(cr, _("Timer is NOT running!")); } return FALSE; @@ -281,7 +282,7 @@ static void set_sig(GtkEditable *w, struct pr_clock *n) t = gtk_entry_get_text(GTK_ENTRY(n->entry)); n->time_allowed = 60.0 * strtod(t, &check); if ( check == t ) { - fprintf(stderr, "Invalid time '%s'\n", t); + fprintf(stderr, _("Invalid time '%s'\n"), t); n->time_allowed = 0.0; } @@ -325,7 +326,7 @@ static gboolean start_sig(GtkWidget *w, gpointer data) n->running = 0; n->time_elapsed_at_start = n->time_elapsed; gtk_label_set_text(GTK_LABEL(gtk_bin_get_child(GTK_BIN(w))), - "Start"); + _("Start")); } else { n->time_elapsed_at_start = n->time_elapsed; if ( n->start != NULL ) { @@ -334,7 +335,7 @@ static gboolean start_sig(GtkWidget *w, gpointer data) n->start = g_date_time_new_now(n->tz); n->running = 1; gtk_label_set_text(GTK_LABEL(gtk_bin_get_child(GTK_BIN(w))), - "Stop"); + _("Stop")); } update_clock(n); @@ -368,21 +369,21 @@ PRClock *pr_clock_new() hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 10); - label = gtk_label_new("Length (mins):"); - gtk_label_set_markup(GTK_LABEL(label), "Length (mins):"); + label = gtk_label_new(_("Length (mins):")); + gtk_label_set_markup(GTK_LABEL(label), _("Length (mins):")); g_object_set(G_OBJECT(label), "halign", GTK_ALIGN_END, NULL); gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 10); n->entry = gtk_entry_new(); gtk_box_pack_start(GTK_BOX(hbox), n->entry, TRUE, TRUE, 0); - n->startbutton = gtk_button_new_with_label("Start"); + n->startbutton = gtk_button_new_with_label(_("Start")); gtk_box_pack_start(GTK_BOX(hbox), n->startbutton, TRUE, TRUE, 10); - resetbutton = gtk_button_new_with_label("Reset"); + resetbutton = gtk_button_new_with_label(_("Reset")); gtk_box_pack_start(GTK_BOX(hbox), resetbutton, TRUE, TRUE, 10); - setposbutton = gtk_button_new_with_label("Set position"); + setposbutton = gtk_button_new_with_label(_("Set position")); gtk_box_pack_start(GTK_BOX(hbox), setposbutton, TRUE, TRUE, 10); n->da = gtk_drawing_area_new(); @@ -395,11 +396,11 @@ PRClock *pr_clock_new() gtk_grid_set_row_spacing(GTK_GRID(grid), 10); gtk_grid_set_column_homogeneous(GTK_GRID(grid), TRUE); gtk_box_pack_start(GTK_BOX(vbox), grid, FALSE, FALSE, 10); - label = gtk_label_new("Time elapsed"); - gtk_label_set_markup(GTK_LABEL(label), "Time elapsed"); + label = gtk_label_new(_("Time elapsed")); + gtk_label_set_markup(GTK_LABEL(label), _("Time elapsed")); gtk_grid_attach(GTK_GRID(grid), label, 0, 0, 1, 1); - label = gtk_label_new("Time remaining"); - gtk_label_set_markup(GTK_LABEL(label), "Time remaining"); + label = gtk_label_new(_("Time remaining")); + gtk_label_set_markup(GTK_LABEL(label), _("Time remaining")); gtk_grid_attach(GTK_GRID(grid), label, 1, 0, 1, 1); n->status = gtk_label_new(""); gtk_grid_attach(GTK_GRID(grid), n->status, 2, 0, 1, 1); @@ -430,7 +431,7 @@ PRClock *pr_clock_new() update_clock(n); n->timer_id = g_timeout_add_seconds(1, update_clock, n); - gtk_window_set_title(GTK_WINDOW(n->window), "Presentation clock"); + gtk_window_set_title(GTK_WINDOW(n->window), _("Presentation clock")); gtk_widget_show_all(n->window); return n; diff --git a/src/presentation.c b/src/presentation.c index 576768d..b8b4589 100644 --- a/src/presentation.c +++ b/src/presentation.c @@ -57,7 +57,7 @@ void free_presentation(struct presentation *p) char *get_titlebar_string(struct presentation *p) { if ( p == NULL || p->uri == NULL ) { - return strdup("(untitled)"); + return strdup(_("(untitled)")); } else { GFile *f = g_file_new_for_uri(p->uri); char *bn = g_file_get_basename(f); @@ -101,7 +101,7 @@ int save_presentation(struct presentation *p, GFile *file) fh = g_file_replace(file, NULL, FALSE, G_FILE_CREATE_NONE, NULL, &error); if ( fh == NULL ) { - fprintf(stderr, "Open failed: %s\n", error->message); + fprintf(stderr, _("Open failed: %s\n"), error->message); return 1; } r = save_sc_block(G_OUTPUT_STREAM(fh), p->scblocks); @@ -161,7 +161,7 @@ SCBlock *first_slide(struct presentation *p) bl = sc_block_next(bl); } - fprintf(stderr, "Couldn't find first slide!\n"); + fprintf(stderr, _("Couldn't find first slide!\n")); return NULL; } @@ -179,7 +179,7 @@ SCBlock *last_slide(struct presentation *p) } if ( l == NULL ) { - fprintf(stderr, "Couldn't find last slide!\n"); + fprintf(stderr, _("Couldn't find last slide!\n")); } return l; } @@ -200,7 +200,7 @@ SCBlock *next_slide(struct presentation *p, SCBlock *sl) bl = sc_block_next(bl); } - fprintf(stderr, "Couldn't find next slide!\n"); + fprintf(stderr, _("Couldn't find next slide!\n")); return NULL; } @@ -221,7 +221,7 @@ SCBlock *prev_slide(struct presentation *p, SCBlock *sl) bl = sc_block_next(bl); } - fprintf(stderr, "Couldn't find prev slide!\n"); + fprintf(stderr, _("Couldn't find prev slide!\n")); return NULL; } @@ -267,14 +267,14 @@ SCBlock *find_stylesheet(SCBlock *bl) static void install_stylesheet(struct presentation *p) { if ( p->stylesheet != NULL ) { - fprintf(stderr, "Duplicate style sheet!\n"); + fprintf(stderr, _("Duplicate style sheet!\n")); return; } p->stylesheet = find_stylesheet(p->scblocks); if ( p->stylesheet == NULL ) { - fprintf(stderr, "No style sheet.\n"); + fprintf(stderr, _("No style sheet.\n")); } } @@ -307,7 +307,7 @@ int load_presentation(struct presentation *p, GFile *file) assert(p->completely_empty); if ( !g_file_load_contents(file, NULL, &everything, NULL, NULL, NULL) ) { - fprintf(stderr, "Failed to load '%s'\n", g_file_get_uri(file)); + fprintf(stderr, _("Failed to load '%s'\n"), g_file_get_uri(file)); return 1; } @@ -320,7 +320,7 @@ int load_presentation(struct presentation *p, GFile *file) if ( r ) { p->completely_empty = 1; - fprintf(stderr, "Parse error.\n"); + fprintf(stderr, _("Parse error.\n")); return r; /* Error */ } diff --git a/src/print.c b/src/print.c index d2e8ac2..b0e3a84 100644 --- a/src/print.c +++ b/src/print.c @@ -33,6 +33,7 @@ #include "presentation.h" #include "narrative_window.h" #include "render.h" +#include "utils.h" static GtkPrintSettings *print_settings = NULL; @@ -86,9 +87,9 @@ static GObject *print_widget(GtkPrintOperation *op, void *vp) /* What do you want to print? */ cbox = gtk_combo_box_text_new(); gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(cbox), "slides", - "Print the slides only"); + _("Print the slides only")); gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(cbox), "narrative", - "Print the narrative"); + _("Print the narrative")); gtk_box_pack_start(GTK_BOX(vbox), cbox, FALSE, FALSE, 10); gtk_combo_box_set_active(GTK_COMBO_BOX(cbox), 1); ps->combo = cbox; diff --git a/src/render.c b/src/render.c index 103194e..fd8151c 100644 --- a/src/render.c +++ b/src/render.c @@ -191,7 +191,7 @@ struct frame *interp_and_shape(SCBlock *scblocks, SCBlock **stylesheets, scin = sc_interp_new(pc, lang, is, top); if ( scin == NULL ) { - fprintf(stderr, "Failed to set up interpreter.\n"); + fprintf(stderr, _("Failed to set up interpreter.\n")); frame_free(top); return NULL; } @@ -290,7 +290,7 @@ int export_pdf(struct presentation *p, const char *filename) surf = cairo_pdf_surface_create(filename, w, w*r); if ( cairo_surface_status(surf) != CAIRO_STATUS_SUCCESS ) { - fprintf(stderr, "Couldn't create Cairo surface\n"); + fprintf(stderr, _("Couldn't create Cairo surface\n")); return 1; } diff --git a/src/sc_editor.c b/src/sc_editor.c index bb22400..96606c6 100644 --- a/src/sc_editor.c +++ b/src/sc_editor.c @@ -70,7 +70,7 @@ static void debug_paragraphs(SCEditor *e) struct frame *fr = e->cursor_frame; int i; - printf("Paragraphs in current frame:\n"); + printf(_("Paragraphs in current frame:\n")); for ( i=0; in_paras; i++ ) { show_para(fr->paras[i]); } @@ -766,7 +766,7 @@ static void do_backspace(struct frame *fr, SCEditor *e) } else { /* FIXME: Implement this */ - fprintf(stderr, "Deleting non-text paragraph\n"); + fprintf(stderr, _("Deleting non-text paragraph\n")); } @@ -807,7 +807,7 @@ static void insert_text(char *t, SCEditor *e) /* Yes. The "easy" case */ if ( !position_editable(e->cursor_frame, e->cpos) ) { - fprintf(stderr, "Position not editable\n"); + fprintf(stderr, _("Position not editable\n")); return; } @@ -828,20 +828,20 @@ static void insert_text(char *t, SCEditor *e) bd = para_scblock(para); if ( bd == NULL ) { - fprintf(stderr, "No SCBlock for para\n"); + fprintf(stderr, _("No SCBlock for para\n")); return; } /* No. Create a new text paragraph straight afterwards */ ad = sc_block_insert_after(bd, NULL, NULL, strdup(t)); if ( ad == NULL ) { - fprintf(stderr, "Failed to add SCBlock\n"); + fprintf(stderr, _("Failed to add SCBlock\n")); return; } pnew = insert_paragraph(e->cursor_frame, e->cpos.para); if ( pnew == NULL ) { - fprintf(stderr, "Failed to insert paragraph\n"); + fprintf(stderr, _("Failed to insert paragraph\n")); return; } add_run(pnew, ad, ad, e->cursor_frame->fontdesc, @@ -1421,7 +1421,7 @@ static gboolean button_release_sig(GtkWidget *da, GdkEventButton *event, { case DRAG_REASON_NONE : - printf("Release on pointless drag.\n"); + printf(_("Release on pointless drag.\n")); break; case DRAG_REASON_CREATE : @@ -1436,7 +1436,7 @@ static gboolean button_release_sig(GtkWidget *da, GdkEventButton *event, e->cpos.pos = 0; e->cpos.trail = 0; } else { - fprintf(stderr, "Failed to create frame!\n"); + fprintf(stderr, _("Failed to create frame!\n")); } break; @@ -1589,16 +1589,16 @@ static gboolean key_press_sig(GtkWidget *da, GdkEventKey *event, if ( event->state & GDK_CONTROL_MASK ) { debug_paragraphs(e); } else if ( event->state & GDK_SHIFT_MASK ) { - printf("Cursor frame block = %p\n", e->cursor_frame->scblocks); - printf("Editor top block = %p\n", e->scblocks); + printf(_("Cursor frame block = %p\n"), e->cursor_frame->scblocks); + printf(_("Editor top block = %p\n"), e->scblocks); show_sc_block(e->cursor_frame->scblocks, ""); } else { open_debugger(e->cursor_frame); } } else { if ( event->state & GDK_SHIFT_MASK ) { - printf("Debugging the top frame:\n"); - printf("Editor top block = %p\n", e->scblocks); + printf(_("Debugging the top frame:\n")); + printf(_("Editor top block = %p\n"), e->scblocks); show_sc_block(e->top->scblocks, ""); } } @@ -1802,7 +1802,7 @@ static void dnd_receive(GtkWidget *widget, GdkDragContext *drag_context, opts = malloc(len); if ( opts == NULL ) { free(filename); - fprintf(stderr, "Failed to allocate SC\n"); + fprintf(stderr, _("Failed to allocate SC\n")); return; } snprintf(opts, len, "1fx1f+0+0,filename=\"%s\"", @@ -2033,7 +2033,7 @@ void sc_editor_set_scale(SCEditor *e, int scale) void sc_editor_set_imagestore(SCEditor *e, ImageStore *is) { if ( e->is != NULL ) { - fprintf(stderr, "WARNING: Changing imagestore\n"); + fprintf(stderr, _("WARNING: Changing imagestore\n")); } e->is = is; } @@ -2077,7 +2077,7 @@ SCEditor *sc_editor_new(SCBlock *scblocks, SCBlock **stylesheets, sceditor->bg_pixbuf = gdk_pixbuf_new_from_resource("/uk/me/bitwiz/Colloquium/sky.png", &err); if ( sceditor->bg_pixbuf == NULL ) { - fprintf(stderr, "Failed to load background: %s\n", + fprintf(stderr, _("Failed to load background: %s\n"), err->message); } diff --git a/src/sc_interp.c b/src/sc_interp.c index 98a944d..9ee6e34 100644 --- a/src/sc_interp.c +++ b/src/sc_interp.c @@ -35,6 +35,7 @@ #include "sc_parse.h" #include "sc_interp.h" #include "presentation.h" +#include "utils.h" struct macro @@ -185,7 +186,7 @@ void sc_callback_list_add_callback(SCCallbackList *cbl, const char *name, if ( (names_new == NULL) || (box_funcs_new == NULL) || (vps_new == NULL) || (draw_funcs_new == NULL) || (click_funcs_new == NULL) ) { - fprintf(stderr, "Failed to grow callback list\n"); + fprintf(stderr, _("Failed to grow callback list\n")); return; } @@ -210,8 +211,8 @@ void sc_callback_list_add_callback(SCCallbackList *cbl, const char *name, void sc_interp_set_callbacks(SCInterpreter *scin, SCCallbackList *cbl) { if ( scin->cbl != NULL ) { - fprintf(stderr, "WARNING: Interpreter already has a callback " - "list.\n"); + fprintf(stderr, _("WARNING: Interpreter already has a callback " + "list.\n")); } scin->cbl = cbl; } @@ -325,7 +326,7 @@ static void update_font(SCInterpreter *scin) scin->pc, st->fontdesc); if ( st->font == NULL ) { char *f = pango_font_description_to_string(st->fontdesc); - fprintf(stderr, "Couldn't load font '%s' (font map %p, pc %p)\n", + fprintf(stderr, _("Couldn't load font '%s' (font map %p, pc %p)\n"), f, pango_context_get_font_map(scin->pc), scin->pc); g_free(f); return; @@ -346,7 +347,7 @@ static void set_font(SCInterpreter *scin, const char *font_name) st->fontdesc = pango_font_description_from_string(font_name); if ( st->fontdesc == NULL ) { - fprintf(stderr, "Couldn't describe font.\n"); + fprintf(stderr, _("Couldn't describe font.\n")); return; } @@ -380,7 +381,7 @@ static void set_fontsize(SCInterpreter *scin, const char *size_str) size = strtoul(size_str, &end, 10); if ( end[0] != '\0' ) { - fprintf(stderr, "Invalid font size '%s'\n", size_str); + fprintf(stderr, _("Invalid font size '%s'\n"), size_str); return; } @@ -431,7 +432,7 @@ static void set_colour(SCInterpreter *scin, const char *colour) struct sc_state *st = &scin->state[scin->j]; if ( colour == NULL ) { - printf("Invalid colour\n"); + printf(_("Invalid colour\n")); st->col[0] = 0.0; st->col[1] = 0.0; st->col[2] = 0.0; @@ -456,7 +457,7 @@ static void set_frame_bgcolour(struct frame *fr, const char *colour) if ( fr == NULL ) return; if ( colour == NULL ) { - printf("Invalid colour\n"); + printf(_("Invalid colour\n")); fr->bgcol[0] = 0.0; fr->bgcol[1] = 0.0; fr->bgcol[2] = 0.0; @@ -484,13 +485,13 @@ static void set_frame_bggrad(struct frame *fr, const char *options, if ( fr == NULL ) return; if ( options == NULL ) { - fprintf(stderr, "Invalid bg gradient spec '%s'\n", options); + fprintf(stderr, _("Invalid bg gradient spec '%s'\n"), options); return; } n2 = strchr(optcopy, ','); if ( n2 == NULL ) { - fprintf(stderr, "Invalid bg gradient spec '%s'\n", options); + fprintf(stderr, _("Invalid bg gradient spec '%s'\n"), options); return; } @@ -524,7 +525,7 @@ void sc_interp_save(SCInterpreter *scin) stack_new = realloc(scin->state, sizeof(struct sc_state) * (scin->max_state+8)); if ( stack_new == NULL ) { - fprintf(stderr, "Failed to add to stack.\n"); + fprintf(stderr, _("Failed to add to stack.\n")); return; } @@ -668,7 +669,7 @@ static int parse_double(const char *a, float v[2]) nn = sscanf(a, "%fx%f", &v[0], &v[1]); if ( nn != 2 ) { - fprintf(stderr, "Invalid size '%s'\n", a); + fprintf(stderr, _("Invalid size '%s'\n"), a); return 1; } @@ -682,7 +683,7 @@ static int parse_tuple(const char *a, float v[4]) nn = sscanf(a, "%f,%f,%f,%f", &v[0], &v[1], &v[2], &v[3]); if ( nn != 4 ) { - fprintf(stderr, "Invalid tuple '%s'\n", a); + fprintf(stderr, _("Invalid tuple '%s'\n"), a); return 1; } @@ -750,7 +751,7 @@ static LengthUnits get_units(const char *t) if ( t[len-1] == 'f' ) return UNITS_FRAC; if ( t[len-1] == 'u' ) return UNITS_SLIDE; - fprintf(stderr, "Invalid units in '%s'\n", t); + fprintf(stderr, _("Invalid units in '%s'\n"), t); return UNITS_SLIDE; } @@ -815,7 +816,7 @@ static int parse_dims(const char *opt, struct frame *parent, return 0; invalid: - fprintf(stderr, "Invalid dimensions '%s'\n", opt); + fprintf(stderr, _("Invalid dimensions '%s'\n"), opt); return 1; } @@ -828,7 +829,7 @@ static int parse_frame_option(const char *opt, struct frame *fr, return parse_dims(opt, parent, &fr->w, &fr->h, &fr->x, &fr->y); } - fprintf(stderr, "Unrecognised frame option '%s'\n", opt); + fprintf(stderr, _("Unrecognised frame option '%s'\n"), opt); return 1; } @@ -885,7 +886,7 @@ static int parse_image_option(const char *opt, struct frame *parent, char *fn; fn = strdup(opt+10); if ( fn[strlen(fn)-1] != '\"' ) { - fprintf(stderr, "Unterminated filename?\n"); + fprintf(stderr, _("Unterminated filename?\n")); free(fn); return 1; } @@ -894,7 +895,7 @@ static int parse_image_option(const char *opt, struct frame *parent, return 0; } - fprintf(stderr, "Unrecognised image option '%s'\n", opt); + fprintf(stderr, _("Unrecognised image option '%s'\n"), opt); return 1; } @@ -1041,7 +1042,7 @@ static int check_outputs(SCBlock *bl, SCInterpreter *scin) filename, scin->is, w, h, 1); free(filename); } else { - fprintf(stderr, "Invalid image options '%s'\n", + fprintf(stderr, _("Invalid image options '%s'\n"), options); } @@ -1057,7 +1058,7 @@ static int check_outputs(SCBlock *bl, SCInterpreter *scin) fr->resizable = 1; } if ( fr == NULL ) { - fprintf(stderr, "Failed to add frame.\n"); + fprintf(stderr, _("Failed to add frame.\n")); return 1; } @@ -1292,7 +1293,7 @@ static int try_add_macro(SCInterpreter *scin, const char *options, SCBlock *bl) macros_new = realloc(st->macros, sizeof(struct macro) * (st->max_macros+16)); if ( macros_new == NULL ) { - fprintf(stderr, "Failed to add macro.\n"); + fprintf(stderr, _("Failed to add macro.\n")); return 1; } @@ -1326,7 +1327,7 @@ static int try_add_template(SCInterpreter *scin, const char *options, SCBlock *b for ( i=0; in_templates; i++ ) { if ( strcmp(st->templates[i].name, nn) == 0 ) { - fprintf(stderr, "Duplicate template '%s'\n", nn); + fprintf(stderr, _("Duplicate template '%s'\n"), nn); return 0; } } @@ -1338,7 +1339,7 @@ static int try_add_template(SCInterpreter *scin, const char *options, SCBlock *b templates_new = realloc(st->templates, sizeof(struct template) * (st->max_templates+16)); if ( templates_new == NULL ) { - fprintf(stderr, "Failed to add templates\n"); + fprintf(stderr, _("Failed to add templates\n")); return 1; } @@ -1367,7 +1368,7 @@ void sc_interp_run_stylesheet(SCInterpreter *scin, SCBlock *bl) if ( bl == NULL ) return; if ( strcmp(sc_block_name(bl), "stylesheet") != 0 ) { - fprintf(stderr, "Style sheet isn't a style sheet.\n"); + fprintf(stderr, _("Style sheet isn't a style sheet.\n")); return; } diff --git a/src/sc_parse.c b/src/sc_parse.c index 3212872..a13c876 100644 --- a/src/sc_parse.c +++ b/src/sc_parse.c @@ -34,6 +34,7 @@ #include #include "sc_parse.h" +#include "utils.h" struct _scblock { @@ -112,7 +113,7 @@ SCBlock *sc_block_prepend(SCBlock *bl, SCBlock *top) prev = sc_find_previous(top, bl); if ( prev == NULL ) { - fprintf(stderr, "Couldn't find previous\n"); + fprintf(stderr, _("Couldn't find previous\n")); return NULL; } @@ -266,7 +267,7 @@ static SCBlock *sc_find_parent(SCBlock *top, SCBlock *find) void sc_block_substitute(SCBlock **top, SCBlock *old, SCBlock *new) { if ( old == NULL ) { - fprintf(stderr, "Substituting nothing!\n"); + fprintf(stderr, _("Substituting nothing!\n")); return; } @@ -288,11 +289,11 @@ int sc_block_unlink(SCBlock **top, SCBlock *deleteme) if ( parent == NULL ) { /* Maybe it's the first block? */ if ( *top == deleteme ) { - fprintf(stderr, "Unlinking at top\n"); + fprintf(stderr, _("Unlinking at top\n")); *top = (*top)->next; return 0; } else { - fprintf(stderr, "Couldn't find block parent!\n"); + fprintf(stderr, _("Couldn't find block parent!\n")); return 1; } } @@ -418,12 +419,12 @@ int save_sc_block(GOutputStream *fh, const SCBlock *bl) char *a = serialise_sc_block(bl); gssize r; if ( a == NULL ) { - fprintf(stderr, "Failed to serialise block\n"); + fprintf(stderr, _("Failed to serialise block\n")); return 1; } r = g_output_stream_write(fh, a, strlen(a), NULL, &error); if ( r == -1 ) { - fprintf(stderr, "Write failed: %s\n", error->message); + fprintf(stderr, _("Write failed: %s\n"), error->message); return 1; } free(a); @@ -546,7 +547,7 @@ static size_t read_block(const char *sc, char **pname, char **options, i += get_subexpr(sc+i+1, "[]", options, err) + 1; if ( *err ) { - printf("Couldn't find end of options '%s'\n", sc+i); + printf(_("Couldn't find end of options '%s'\n"), sc+i); return 0; } @@ -558,7 +559,7 @@ static size_t read_block(const char *sc, char **pname, char **options, i += get_subexpr(sc+i+1, "{}", contents, err) + 1; if ( *err ) { - printf("Couldn't find end of content '%s'\n", sc+i); + printf(_("Couldn't find end of content '%s'\n"), sc+i); return 0; } @@ -656,7 +657,7 @@ SCBlock *sc_parse(const char *sc) bl = sc_block_append(bl, NULL, NULL, strdup(tbuf), &blf); if ( bl == NULL ) { - fprintf(stderr, "Block add failed.\n"); + fprintf(stderr, _("Block add failed.\n")); sc_block_free(blf); free(tbuf); return NULL; @@ -666,7 +667,7 @@ SCBlock *sc_parse(const char *sc) i += read_block(sc+i+1, &name, &opt, &contents, &err); if ( err ) { - printf("Parse error\n"); + printf(_("Parse error\n")); sc_block_free(blf); free(tbuf); return NULL; @@ -674,7 +675,7 @@ SCBlock *sc_parse(const char *sc) bl = sc_block_append(bl, name, opt, contents, &blf); if ( bl == NULL ) { - fprintf(stderr, "Block add failed.\n"); + fprintf(stderr, _("Block add failed.\n")); sc_block_free(blf); free(tbuf); return NULL; @@ -699,7 +700,7 @@ SCBlock *sc_parse(const char *sc) tbuf[j] = '\0'; bl = sc_block_append(bl, NULL, NULL, tbuf, &blf); if ( bl == NULL ) { - fprintf(stderr, "Block add failed.\n"); + fprintf(stderr, _("Block add failed.\n")); sc_block_free(blf); free(tbuf); return NULL; @@ -716,7 +717,7 @@ SCBlock *sc_parse(const char *sc) void sc_block_set_name(SCBlock *bl, char *nam) { if ( bl == NULL ) { - fprintf(stderr, "sc_block_set_name: NULL block\n"); + fprintf(stderr, _("sc_block_set_name: NULL block\n")); return; } free(bl->name); @@ -795,7 +796,7 @@ size_t scblock_delete_text(SCBlock *b, ssize_t o1, ssize_t o2) size_t len; if ( b->contents == NULL ) { - fprintf(stderr, "Deleting text from block \\%s\n", b->name); + fprintf(stderr, _("Deleting text from block \\%s\n"), b->name); return 0; } @@ -808,7 +809,7 @@ size_t scblock_delete_text(SCBlock *b, ssize_t o1, ssize_t o2) len = strlen(b->contents); if ( o2 < 0 ) o2 = len; if ( (o1 >= o2) || (o1 > len) || (o2 > len) ) { - fprintf(stderr, "Invalid delete: %i %i %i\n", + fprintf(stderr, _("Invalid delete: %i %i %i\n"), (int)o1, (int)o2, (int)len); return 0; } @@ -861,7 +862,7 @@ SCBlock *sc_block_split(SCBlock *bl, size_t pos) SCBlock *n = sc_block_new(); if ( bl->child != NULL ) { - fprintf(stderr, "Splitting a block with a child!\n"); + fprintf(stderr, _("Splitting a block with a child!\n")); return NULL; } diff --git a/src/slide_window.c b/src/slide_window.c index 9dcab2d..28d556b 100644 --- a/src/slide_window.c +++ b/src/slide_window.c @@ -43,6 +43,7 @@ #include "sc_parse.h" #include "sc_interp.h" #include "sc_editor.h" +#include "utils.h" struct _slidewindow diff --git a/src/slideshow.c b/src/slideshow.c index 194befd..754a453 100644 --- a/src/slideshow.c +++ b/src/slideshow.c @@ -36,6 +36,7 @@ #include "render.h" #include "pr_clock.h" #include "frame.h" +#include "utils.h" G_DEFINE_TYPE_WITH_CODE(SCSlideshow, sc_slideshow, GTK_TYPE_WINDOW, NULL) @@ -216,11 +217,11 @@ SCSlideshow *sc_slideshow_new(struct presentation *p, GtkApplication *app) GdkMonitor *mon_ss; if ( n_monitors == 1 ) { mon_ss = gdk_display_get_primary_monitor(display); - printf("Single monitor mode\n"); + printf(_("Single monitor mode\n")); ss->single_monitor = 1; } else { mon_ss = gdk_display_get_monitor(display, 1); - printf("Dual monitor mode\n"); + printf(_("Dual monitor mode\n")); ss->single_monitor = 0; } @@ -235,7 +236,7 @@ SCSlideshow *sc_slideshow_new(struct presentation *p, GtkApplication *app) if ( app != NULL ) { ss->inhibit_cookie = gtk_application_inhibit(app, GTK_WINDOW(ss), GTK_APPLICATION_INHIBIT_IDLE, - "Presentation slide show is running"); + _("Presentation slide show is running")); } return ss; diff --git a/src/testcard.c b/src/testcard.c index 5c723a0..2b6598f 100644 --- a/src/testcard.c +++ b/src/testcard.c @@ -32,6 +32,7 @@ #include #include "presentation.h" +#include "utils.h" struct testcard @@ -173,9 +174,10 @@ static gboolean tc_draw_sig(GtkWidget *da, cairo_t *cr, struct testcard *tc) cairo_save(cr); cairo_translate(cr, 0.0, yp); - snprintf(tmp, 1024, "Colloquium "PACKAGE_VERSION" test card\n" + snprintf(tmp, 1024, _("Colloquium %s test card\n" "Screen resolution %.0f × %.0f\n" - "Slide resolution %i × %i", width, height, + "Slide resolution %i × %i"), + PACKAGE_VERSION, width, height, tc->slide_width, h); pl = pango_cairo_create_layout(cr); @@ -192,12 +194,12 @@ static gboolean tc_draw_sig(GtkWidget *da, cairo_t *cr, struct testcard *tc) /* Colour boxes */ xp = (tc->slide_width-450)/2.0; - colour_box(cr, xp+0, 200, 1.0, 0.0, 0.0, "Red"); - colour_box(cr, xp+80, 200, 0.0, 1.0, 0.0, "Green"); - colour_box(cr, xp+160, 200, 0.0, 0.0, 1.0, "Blue"); - colour_box(cr, xp+240, 200, 1.0, 1.0, 0.0, "Yellow"); - colour_box(cr, xp+320, 200, 1.0, 0.0, 1.0, "Pink"); - colour_box(cr, xp+400, 200, 0.0, 1.0, 1.0, "Cyan"); + colour_box(cr, xp+0, 200, 1.0, 0.0, 0.0, _("Red")); + colour_box(cr, xp+80, 200, 0.0, 1.0, 0.0, _("Green")); + colour_box(cr, xp+160, 200, 0.0, 0.0, 1.0, _("Blue")); + colour_box(cr, xp+240, 200, 1.0, 1.0, 0.0, _("Yellow")); + colour_box(cr, xp+320, 200, 1.0, 0.0, 1.0, _("Pink")); + colour_box(cr, xp+400, 200, 0.0, 1.0, 1.0, _("Cyan")); /* Shades of grey */ double i; @@ -268,10 +270,10 @@ void show_testcard(struct presentation *p) GdkMonitor *mon_ss; if ( n_monitors == 1 ) { mon_ss = gdk_display_get_primary_monitor(display); - printf("Single monitor mode\n"); + printf(_("Single monitor mode\n")); } else { mon_ss = gdk_display_get_monitor(display, 1); - printf("Dual monitor mode\n"); + printf(_("Dual monitor mode\n")); } /* Workaround because gtk_window_fullscreen_on_monitor doesn't work */ diff --git a/src/utils.c b/src/utils.c index 0191d18..9033466 100644 --- a/src/utils.c +++ b/src/utils.c @@ -29,6 +29,8 @@ #include #include +#include "utils.h" + void chomp(char *s) { size_t i; @@ -125,7 +127,7 @@ char *load_everything(const char *filename) everything = realloc(everything, el+len); if ( everything == NULL ) { - fprintf(stderr, "Failed to allocate memory\n"); + fprintf(stderr, _("Failed to allocate memory\n")); return NULL; } el += len; diff --git a/src/utils.h b/src/utils.h index cc686f2..bfc04c2 100644 --- a/src/utils.h +++ b/src/utils.h @@ -32,6 +32,7 @@ extern void chomp(char *s); extern int safe_strcmp(const char *a, const char *b); extern char *load_everything(const char *filename); +#include #define _(x) gettext(x) #endif /* UTILS_H */ -- cgit v1.2.3