From: John Mandereau Date: Mon, 4 Jan 2010 01:03:09 +0000 (+0100) Subject: Web: tune second navigation bar and complete i18n X-Git-Tag: release/2.13.11-1~108 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=712e575fb12d02d58e04553a3474afb9f6d2391b;p=lilypond.git Web: tune second navigation bar and complete i18n - rename search-box.html to search-box.ihtml; - i18n the search box and hosting thanks footer line; - replace hard-coded section node names with hard-coded chapter file name prefixes and numeric arrays, fixing the CSS class of second navigation bar in translations; - replace "(main)" with chapter name in the second navigation bar. --- diff --git a/Documentation/contributor/doc-translation-list.itexi b/Documentation/contributor/doc-translation-list.itexi index e2e4ff0fac..3eb28d87ce 100644 --- a/Documentation/contributor/doc-translation-list.itexi +++ b/Documentation/contributor/doc-translation-list.itexi @@ -24,6 +24,7 @@ Word counts (excluding LilyPond snippets) are given for each file. 1107 macros.itexi 161 translations.template.html.in 9 po/lilypond-doc.pot (translate to po/@var{MY_LANGUAGE}.po) +0 search-box.html --- lilypond-texi2html.init (section TRANSLATIONS) 6440 total diff --git a/Documentation/lilypond-texi2html.init b/Documentation/lilypond-texi2html.init index edd22bf161..e3b09ab1d7 100644 --- a/Documentation/lilypond-texi2html.init +++ b/Documentation/lilypond-texi2html.init @@ -76,23 +76,32 @@ use Encode qw(decode); my $LY_LANGUAGES = {}; $LY_LANGUAGES->{'fr'} = { 'Back to Documentation Index' => 'Retour à l\'accueil de la documentation', + '

Thanks to ${webdev_link} for hosting ${lily_site}.' => '

Remerciements à ${webdev_link} pour l\'hébergement de ${lily_site}.', }; + $LY_LANGUAGES->{'es'} = { 'Back to Documentation Index' => 'Volver al índice de la documentación', + '

Thanks to ${webdev_link} for hosting ${lily_site}.' => '', }; + $LY_LANGUAGES->{'de'} = { 'Back to Documentation Index' => 'Zur Dokumentationsübersicht', + '

Thanks to ${webdev_link} for hosting ${lily_site}.' => '', }; + $LY_LANGUAGES->{'ja'} = { 'Back to Documentation Index' => 'ドキュメント インデックスに戻る', + '

Thanks to ${webdev_link} for hosting ${lily_site}.' => '', }; $LY_LANGUAGES->{'hu'} = { 'Back to Documentation Index' => 'Vissza a dokumentációk jegyzékéhez', + '

Thanks to ${webdev_link} for hosting ${lily_site}.' => '', }; $LY_LANGUAGES->{'it'} = { 'Back to Documentation Index' => 'Torna all\'indice della documentazione', + '

Thanks to ${webdev_link} for hosting ${lily_site}.' => '', }; # FIXME: request the translations below then send them to texi2html/texinfo devs @@ -366,6 +375,7 @@ $LANGUAGES->{'hu'} = { '{title_ref}' => '{title_ref}' }; + sub ly_get_string () { my $lang = $Texi2HTML::THISDOC{current_lang}; my $string = shift; @@ -917,15 +927,15 @@ push @Texi2HTML::Config::command_handler_process, \&lilypond_init_toc_depth; # -) the parent is a numbered element at top-level toplevel (i.e. show numbered # and unnumbered 2nd-level children of numbered nodes) # -) the child element is a numbered node below level maxlevel -sub generate_ly_toc_entries($$$) +sub generate_ly_toc_entries($$$$) { my $element = shift; my $element_path = shift; + my $maxlevel = shift; if ($web_manual) { - my $maxlevel = 1; - } else { - my $maxlevel = shift; + $maxlevel = 1; } + my $child_count = shift; # Skip undefined sections, plus all sections generated by index splitting return() if (not defined($element) or exists($element->{'index_page'})); my @result = (); @@ -939,54 +949,22 @@ sub generate_ly_toc_entries($$$) $this_css_class = ""; } $this_css_class .= $is_parent_of_current ? " toc_current" : ""; -# HORRIBLE HACK - my @color_1 = ( - "Learning", "Glossary", "Essay", - "Contact", "Tiny examples", "Bug reports" - ); - my @color_2 = ( - "Features", "Examples", "Freedom", "Background", - "Unix", "MacOS X", "Windows", - "Notation", "Usage", "Snippets", - "Help us", "Development", "Authors" - ); - my @color_3 = ( - "Productions", "Testimonials", - "Source", "Old downloads", - "Web", "FAQ", "Changes", "Extend", "Internals", - "Publications", "Old news" - ); - my @color_4 = ( - "Text input", "Easier editing", - "GPL", - "Translated", "All", "FDL" - ); + # color indices for the second navigation bar on the website + my %color_maps = ( + 'introduction' => [2, 2, 2, 2, 3, 3, 4, 4], + 'download' => [2, 2, 2, 3, 3, 4], + 'manuals' => [1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4], + 'community' => [1, 1, 1, 2, 2, 2, 3, 3], + ); my $addColor = " colorDefault"; - foreach $color (@color_1) { - if ($element->{'text'} eq $color) { - $addColor = " color1"; - } - } - foreach $color (@color_2) { - if ($element->{'text'} eq $color) { - $addColor = " color2"; - } - } - foreach $color (@color_3) { - if ($element->{'text'} eq $color) { - $addColor = " color3"; - } - } - foreach $color (@color_4) { - if ($element->{'text'} eq $color) { - $addColor = " color4"; - } + while (($top_section, $color_indices) = each %color_maps) { + if (index ($element->{'sectionup'}->{'file'}, $top_section) >= 0) { + $addColor = " color" . $color_indices->[$child_count]; + } } - $this_css_class .= $addColor . "\""; - my $entry = "$ind" . &$anchor ($element->{'tocid'}, "$element->{'file'}#$element->{'target'}",$element->{'text'}); push (@result, $entry); @@ -994,12 +972,14 @@ sub generate_ly_toc_entries($$$) if (defined($children) and (ref($children) eq "ARRAY")) { my $force_children = $is_parent_of_current or ($level == 1 and $element->{'number'}); my @child_result = (); + my $sub_child_count = 0; foreach my $c (@$children) { my $is_numbered_child = defined ($c->{'number'}); my $below_maxlevel = $c->{'toc_level'} le $maxlevel; if ($force_children or ($is_numbered_child and $below_maxlevel)) { - my @child_res = generate_ly_toc_entries($c, $element_path, $maxlevel); + my @child_res = generate_ly_toc_entries($c, $element_path, $maxlevel, $sub_child_count); push (@child_result, @child_res); + $sub_child_count += 1; } } # if no child nodes were generated, e.g. for the index, where expanded pages @@ -1007,7 +987,7 @@ sub generate_ly_toc_entries($$$) if (@child_result) { push (@result, "\n$ind\n"); if ($web_manual) { - push (@result, "$ind" . &$anchor ($element->{'tocid'}, "$element->{'file'}#$element->{'target'}","(main)")); + push (@result, "$ind" . &$anchor ($element->{'tocid'}, "$element->{'file'}#$element->{'target'}", $element->{'text'})); } push (@result, @child_result); push (@result, "$ind\n"); @@ -1057,12 +1037,15 @@ sub lilypond_generate_page_toc_body($) } my $children = $current_element->{'section_childs'}; foreach ( @$children ) { - push (@toc_entries, generate_ly_toc_entries($_, \%parentelements, $page_toc_depth)); + push (@toc_entries, generate_ly_toc_entries($_, \%parentelements, $page_toc_depth, 0)); } # search box local $/=undef; - my $name = "search-box.html"; - open FILE, "$ENV{TOP_SRC_DIR}/Documentation/$name" or die "no such file: $name: $!"; + my $name = "search-box"; + $lang = $Texi2HTML::THISDOC{current_lang}; + open FILE, "$ENV{TOP_SRC_DIR}/Documentation/$lang/$name.ihtml" or + open FILE, "$ENV{TOP_SRC_DIR}/Documentation/$name.ihtml" or + die "no such file: $name.ihtml: $!"; my $search_string = ; $search_string = "

  • \n" . $search_string . "
  • \n"; push (@toc_entries, $search_string); @@ -1167,14 +1150,18 @@ sub print_lilypond_page_foot($) # print $fh "

    $program_string
    $PRE_BODY_CLOSE

    \n"; print $fh "\n\n"; print $fh "\n\n\n"; - if ($web_manual) { # FIXME: This div and p#languages need to be in div#footer. # Should we move this div to postprocess_html.py ? print $fh "
    \n"; print $fh "

    Validation

    \n"; - print $fh "

    Thanks to webdev.nl"; - print $fh " for hosting lilypond.org.\n"; + # FIXME: inlined text substitution, move to ly_get_string as soon as another case is needed + my $webdev_link = "webdev.nl"; + my $lily_site = "lilypond.org"; + my $hosting_thanks = &ly_get_string ('

    Thanks to ${webdev_link} for hosting ${lily_site}.'); + # this does the variable substitution ("quoting" in Perlish) after the localization + $hosting_thanks =~ s/(\$\{\w+\})/$1/eeg; + print $fh $hosting_thanks . "\n"; print $fh "\n"; print $fh "\"Valid - - - - diff --git a/Documentation/search-box.ihtml b/Documentation/search-box.ihtml new file mode 100644 index 0000000000..961b6af1d0 --- /dev/null +++ b/Documentation/search-box.ihtml @@ -0,0 +1,13 @@ +

    + + + +