diff options
author | Bence Babati <b.baabsi@gmail.com> | 2012-09-04 17:49:52 +0200 |
---|---|---|
committer | Andras Timar <atimar@suse.com> | 2012-09-10 21:33:21 +0200 |
commit | 7017654a70f7e55e5c608a196b58eeb3d859c066 (patch) | |
tree | 027023cb9f59983d8fa3b8655276e1a04f8c1b5c | |
parent | ad050e40f1eb05c49b116ec9d856142f8dc4f635 (diff) |
add help.tree files to extensions' help
Change-Id: I2decf0178dea2722a752291f21e97cae4aab8074
-rw-r--r-- | l10ntools/scripts/update_tree.pl | 394 | ||||
-rw-r--r-- | nlpsolver/Extension_nlpsolver.mk | 3 | ||||
-rw-r--r-- | nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver/help.tree | 19 | ||||
-rw-r--r-- | nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver/tree_strings.xhp | 29 | ||||
-rw-r--r-- | sdext/Extension_presenter.mk | 4 | ||||
-rw-r--r-- | sdext/source/presenter/help/en-US/com.sun.PresenterScreen/help.tree | 18 | ||||
-rw-r--r-- | sdext/source/presenter/help/en-US/com.sun.PresenterScreen/tree_strings.xhp | 29 | ||||
-rw-r--r-- | solenv/gbuild/Extension.mk | 14 | ||||
-rw-r--r-- | solenv/gbuild/ExtensionTarget.mk | 51 | ||||
-rw-r--r-- | swext/Extension_wiki-publisher.mk | 2 | ||||
-rw-r--r-- | swext/mediawiki/help/help.tree | 22 | ||||
-rw-r--r-- | swext/mediawiki/help/tree_strings.xhp | 29 |
12 files changed, 612 insertions, 2 deletions
diff --git a/l10ntools/scripts/update_tree.pl b/l10ntools/scripts/update_tree.pl new file mode 100644 index 000000000000..568d99e36ad5 --- /dev/null +++ b/l10ntools/scripts/update_tree.pl @@ -0,0 +1,394 @@ +: +eval 'exec perl -wS $0 ${1+"$@"}' + if 0; +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +use Cwd 'abs_path'; +use File::Find; +use File::Copy qw/cp mv/; +use File::Basename; + +# update the tree files in <platform>/misc/* + +$| = 1; + +my $prj = $ENV{PWD}; + +my $inpath = $ENV{WORKDIR}; +terminate() if ( ! defined $inpath ); + +my $destpath = $inpath; +my $with_lang = $ARGV[1]; +my $xmllint = $ENV{XMLLINT}; + +$tree_target_prefix = $ARGV[4]; + +# Always use / directory separators +$prj =~ s/\\/\//g if defined($prj); +$inpath =~ s/\\/\//g; +$destpath =~ s/\\/\//g; + +if ( ! defined $prj ) { +# do someting that works for manual call + ($scriptname = `pwd`) =~ s/\n/\/$0/; + ($tree_src = $scriptname) =~ s/\/update_tree.pl/\/..\/source\/auxiliary/; + ($tree_dest = $scriptname) =~ s/\/update_tree.pl/\/..\/$destpath\/misc/; + ($source_dir = $scriptname) =~ s/\/update_tree.pl/\/..\/source/; + ($source_dir_xhp = $scriptname) =~ s/\/update_tree.pl/\/..\/source/; + + if ( defined $ENV{TRYSDF} || defined $ENV{LOCALIZESDF} ) + { + if( defined $ENV{LOCALIZATION_FOUND} && $ENV{LOCALIZATION_FOUND} eq "YES" ) + { + $source_dir = $ENV{TRYSDF}; + } + elsif( defined $ENV{LOCALIZESDF} && $ENV{LOCALIZESDF} ne "" ) + { + $source_dir = $ENV{LOCALIZESDF}; + } + $source_dir =~ s/\/auxiliary\/localize.sdf$// ; + } + $treestrings = "$ARGV[0]"; + $treestrings=~ s/\/*.tree//g; +} else { + $source_dir_xhp = "$prj/source/presenter/help"; + $tree_src = "$ARGV[0]"; + $tree_src =~ s/\/help.tree//g; + $tree_dest = "$ARGV[3]"; + $tree_dest =~ s/\/help.tree//g; + $source_dir = "$ARGV[2]"; + $source_dir =~ s/\/localize.sdf//g; + $treestrings = "$ARGV[0]"; + $treestrings=~ s/\/help.tree/\/tree_strings.xhp/g; + + if( defined $ENV{LOCALIZATION_FOUND} && $ENV{LOCALIZATION_FOUND} eq "YES" ) + { + $source_dir = $ENV{TRYSDF}; + } + elsif ( defined $ENV{LOCALIZESDF} && $ENV{LOCALIZESDF} ne "" ) + { + $source_dir = $ENV{LOCALIZESDF}; + } + $source_dir =~ s/\/auxiliary\/localize.sdf$// ; +} + +# Get the English tree files as master +#------------------------------- +# Update English from xhp +#------------------------------- +&do_english; +#------------------------------- +# Update localizations from sdf +#------------------------------- + +if( defined $with_lang && $with_lang ne "" ) +{ + @langs = split /\s+/, $with_lang; + &read_loc; + for $l(@langs) + { + #if ($l ne "en-US") { + &do_lang($l); + #} + } +} +else +{ + print "\nNo WITH_LANG set, skipping l10n\n"; +} +#------------------------------- +# + +#################### +# SUBS +#################### +sub terminate { + $err = shift; + print "$err\n\n"; + $msg = <<"MSG"; + +update_tree.pl + all languages in WITH_LANG are processed. WITH_LANG=ALL is + not supported in manual calls. + + Updates the *.tree files. + At first, the English file is updated based on the English + help topic titles as read from the help files. Then, the + localized tree files are written based on the English tree + file and the localized help topic titles. + + Requires a valid LibreOffice build environment. +MSG + print "$msg\n"; + exit( -1 ); + # die "$msg\n"; +} + +#--------------------------------------------------- + +sub do_english { + undef %helpsection; undef %node; + &readtreestrings; + &gettreefiles; +} + +#--------------------------------------------------- +sub do_lang { + $lng = shift; + print "Processing $lng\n"; + &processtreefiles($lng); +} + +#--------------------------------------------------- +sub readtreestrings { + if (open TREE, $treestrings) { + print "Processing readtreestrings\n"; + while (<TREE>) { + chomp; + s/<\/*help:productname>//gis; + if (/help_section/) { + s/^\s*<.*help_section//; + s/<\/.*$//; + ($id = $_) =~ s/^.*id="(\d+)".*$/$1/; + ($title = $_) =~ s/^.*title="(.*)".*$/$1/; + $helpsection{$id} = $title; + } + + if (/node id=/) { + s/^\s*<.*node //; + s/<\/.*$//; + ($id = $_) =~ s/^.*id="(\d+)".*$/$1/; + ($title = $_) =~ s/^.*title="(.*)".*$/$1/; + $node{$id} = $title; + } + } + close TREE; + } else { + &terminate("Error opening $treestrings"); + } +} + +#------------------------------------ +sub gettreefiles { + # Read the tree files from the directory + # this list is also used for all foreign languages + if (opendir ENUS, "$tree_src") { + @treeviews = grep /\.tree/, readdir ENUS; + closedir ENUS; + } else { + &terminate("Cannot open directory $tree_src"); + } +} + +#------------------------------------ +sub processtreefiles { + $lng = shift; + use File::Temp qw/ tempfile /; + use File::Spec; + + for $tv(@treeviews) { + @lines = &readtv("$tree_src/$tv"); + for $l(@lines) { + if ($l =~ /topic/) { + ($id = $l) =~ s/^.*id="([^"]*)".*$/$1/gis; + ($module = $id) =~ s/^([^\/]*).*$/$1/; + $id =~ s/^.*?\///; + $file = "$source_dir_xhp/$lng/$id"; + + if ($lng eq 'en-US') { # english comes from the file + $temp = $l; + $temp =~ s/^.*<topic[^>]+id=".*"[^>]*>([^<]*)<\/topic>.*$/$1/gis; + $temp =~ s/'/\'/gis; $temp=~ s/&/+/gis; + $temp =~ s/"/\'/gis; $temp =~ s/&/+/gis; + + $id =~s/^.*\/(.*.xhp)/$1/; + $l = "<topic id=\"$module/$tree_target_prefix/$id\">$temp</topic>\n"; + } else { # localized comes from the localize sdf + if (defined($loc_title{$lng}->{$id})) { + $xhpname = $id; + $xhpname =~s/^.*\/(.*.xhp)/$1/; + $l = "<topic id=\"$module/$tree_target_prefix/$xhpname\">$loc_title{$lng}->{$id}</topic>\n"; + } else { + } + } + } + + if ($l =~/<node/) { + ($id = $l) =~ s/^.*id="(\d+)".*$/$1/gis; + if ($lng eq 'en-US') { + if (defined($node{$id})) { + $l =~ s/title="(.*)"/title="$node{$id}"/; + } else { + $l =~ s/title="(.*)"/title="NOTFOUND:$id"/; + } + } else { + if (defined($node{$lng}->{$id})) { + $l =~ s/title="(.*)"/title="$node{$lng}->{$id}"/; + } + } + } + + if ($l =~/<help_section/) { + ($id = $l) =~ s/^.*id="(\d+)".*$/$1/gis; + if ($lng eq 'en-US') { + if (defined($helpsection{$id})) { + $l =~ s/title="(.*)"/title="$helpsection{$id}"/; + } else { + $l =~ s/title="(.*)"/title="NOTFOUND:$id"/; + } + } else { + if (defined($helpsection{$lng}->{$id})) { + $l =~ s/title="(.*)"/title="$helpsection{$lng}->{$id}"/; + } + } + } + } + + + my $treeoutdir = "$tree_dest"; + my $tmpname_template=$tv."_XXXXX"; + my ( $treetmpfilehandle, $treetmpfile ) = tempfile($tmpname_template , DIR => File::Spec->tmpdir() ); + close $treetmpfilehandle ; + + if (open TV, ">$treetmpfile") { + for $line(@lines) { + $line =~ s/\$\[officename\]/%PRODUCTNAME/g; + $line =~ s/\$\[officeversion\]/%PRODUCTVERSION/g; + print TV $line; + } + close TV; + chmod 0664, $treetmpfile or &terminate("Cannot change rights on $treetmpfile"); + if( $^O eq 'MSWin32' ) + { + $tree_dest =~ s/\//\\/g ; + unlink "$tree_dest\\$tv" ; + mv $treetmpfile , "$tree_dest\\$tv" or &terminate("Cannot mv $treetmpfile to $tree_dest\\$tv" ); + } + else + { + unlink "$tree_dest/$tv" ; + my $ret=mv $treetmpfile , "$tree_dest/$tv" or &terminate("Cannot write to $tree_dest/$tv - Error $!"); + my $ret=mv "$tree_dest/$tv" , "$tree_dest/$tv" or &terminate("Cannot write to $tree_dest/$tv - Error $!"); + #xmllint is crashing on windows, fixme + if( $^O ne 'cygwin' ) + { + system("$xmllint --noout --noent $tree_dest/$tv") == 0 or &terminate("$tree_dest/$tv is illformed xml ($xmllint on $^O)" ); + } + } + } else { + &terminate("Cannot write to $tvout"); + } + } +} + +#------------------------------------ +sub readtv { + my $f = shift; + if (open TV, $f) { + $/ = "\n"; + my @l = <TV>; + close TV; + return @l; + } else { + &terminate("Error opening $f"); + } +} + +#------------------------------------- +# read entries from localize.sdf files +#------------------------------------- +sub read_loc { + $/ = "\n"; + my $path = "$source_dir"; + @files = `find $source_dir -name localize.sdf`; + for my $fname (@files) { + $FS = '\t'; + open(LOCALIZE_SDF, $fname) || die 'Cannot open "localize.sdf".'."$fname"; + while (<LOCALIZE_SDF>) { + my $sdf_line = $_; + my ($Fld1,$file,$Fld3,$Fld4,$id,$Fld6,$Fld7,$Fld8,$Fld9,$lang,$text) = split($FS, $sdf_line , 12); + next if ( $Fld1 =~ /^#/); + if ($id eq 'tit') { + #strip filename + $file =~ s/.*text\\/text\\/g; + #convert \ to / in filename + $file =~ s/\\/\//g; + $file =~ s/^.*\/(.*)\/(.*)$/$1\/$2/; + #fpe: i46823 - need to encode &s, added encoding + $text =~ s/&(?!amp;)/&/g; + #help xml tags are not allowed in .tree files + $text =~ s/\\<.*?\\>//g; + # add entry to the hash + + $loc_title{$lang}->{$file} = $text; + } + if ($file =~ /tree_strings.xhp/) { + #strip filename + $file =~ s/.*text/text/g; + #convert \ to / in filename + $file =~ s/\\/\//g; + if ($text =~ /^<help_section/) { + #example: <help_section application="scalc" id="08" title="表計算ドキュメント"> + my ($fld1,$app,$fld3,$id,$fld5,$sec_title) = split('"', $text, 7); + #fpe: i46823 - need to encode &s, added encoding + if( defined $sec_title ) + { + $sec_title =~ s/&(?!amp;)/&/g; + #help xml tags are not allowed in .tree files + $sec_title =~ s/\\<.*?\\>//g; + #unquot \<item ... /\> + terminate( "\n\nERROR: Bad string in file '$fname' will cause invalid xml tree file \n---\n'$sdf_line'\n---\nPlease remove or replace < = '<' and > = '>' within the title attribute '$sec_title'\n") , if( $sec_title =~ /[\<\>]/ ); + $helpsection{$lang}->{$id} = $sec_title; + } + } elsif ($text =~/<node id=/) { + # example: <node id="0205" title="Tabelas em documentos de texto"> + # BEWARE: title may contain escaped '"' so only match " not preceded by \ + # using a zero‐width negative look‐behind assertion. + my ($fld1,$id,$fld3,$node_title,$Fld5) = split(/(?<!\\)"/, $text, 5); + #fpe: i46823 - need to encode &s, added encoding + if( defined $node_title ) + { + $node_title =~ s/&(?!amp;)/&/g; + #help xml tags are not allowed in .tree files + $node_title =~ s/\\<.*?\\>//g; + terminate( "\n\nERROR: Bad string in '$fname' will cause invalid xml tree file \n---\n'$sdf_line'\n---\nPlease remove or replace < = '<' and > = '>' within the title attribute '$node_title'\n") , if( $node_title =~ /[\<\>]/ ); + } + $node{$lang}->{$id} = $node_title; + } + } + } + close LOCALIZE_SDF; + } + # statistics + $total_elements=0; + foreach $lang (keys %loc_title) { + $no_elements = scalar(keys(%{$loc_title{$lang}})); + push(@langstat, "$lang:\t ".$no_elements." matches\n"); + $total_elements += $no_elements; + } +} diff --git a/nlpsolver/Extension_nlpsolver.mk b/nlpsolver/Extension_nlpsolver.mk index 6f2690f1ebd9..75c8f7f4a3f5 100644 --- a/nlpsolver/Extension_nlpsolver.mk +++ b/nlpsolver/Extension_nlpsolver.mk @@ -45,4 +45,7 @@ $(eval $(call gb_Extension_add_helpfiles,nlpsolver,$(SRCDIR)/nlpsolver/help/en, com.sun.star.comp.Calc.NLPSolver/Usage.xhp \ )) +$(eval $(call gb_Extension_add_helptreefile,nlpsolver,$(SRCDIR)/nlpsolver/help/en,/help.tree,com.sun.star.comp.Calc.NLPSolver/help.tree,com.sun.star.comp.Calc.NLPSolver)) + + # vim: set noet sw=4 ts=4: diff --git a/nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver/help.tree b/nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver/help.tree new file mode 100644 index 000000000000..7ccf4d6c25a9 --- /dev/null +++ b/nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver/help.tree @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * +--> + +<tree_view> +<help_section application="scalc" id="08" title="Solver for Nonlinear Problems"> + <node id="0816" title="Solver for Nonlinear Problems"> + <topic id="help/com.sun.star.comp.Calc.NLPSolver/Usage.xhp">Usage</topic> + <topic id="help/com.sun.star.comp.Calc.NLPSolver/Options.xhp">Options</topic> + </node> +</help_section> +</tree_view> diff --git a/nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver/tree_strings.xhp b/nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver/tree_strings.xhp new file mode 100644 index 000000000000..f6403c45c42b --- /dev/null +++ b/nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver/tree_strings.xhp @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<helpdocument version="1.0"> + +<!-- + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * +--> + +<meta> + <topic id="tree_stringsxml" indexer="include" status="PUBLISH"> + <title xml-lang="en-US" id="tit" localize="false">Note to translators:</title> + <filename>/help/en/com.sun.star.comp.Calc.NLPSolver/tree_strings.xhp</filename> + </topic> +</meta> + +<body> + <comment>This file contains extra strings for the contents (*.tree) files. No indexing!</comment> + <switch select="sys"> <case select="OS2"> + <paragraph role="heading" level="1" id="hd_id3150150" xml-lang="en-US" localize="false">File: help.tree</paragraph> + <paragraph role="paragraph" id="par_id3160160" xml-lang="en-US"><help_section application="scalc" id="08" title="Solver for Nonlinear Problems"></paragraph> + <paragraph role="paragraph" id="par_id3170170" xml-lang="en-US"><node id="0816" title="Solver for Nonlinear Problems"></paragraph> + </case> </switch> +</body> + +</helpdocument> diff --git a/sdext/Extension_presenter.mk b/sdext/Extension_presenter.mk index ba5a51a68694..66f93a8f2a81 100644 --- a/sdext/Extension_presenter.mk +++ b/sdext/Extension_presenter.mk @@ -143,4 +143,8 @@ $(eval $(call gb_Extension_add_files,presenter-screen,registry/data/org/openoffi $(eval $(call gb_Extension_add_helpfile,presenter-screen,$(WORKDIR)/CustomTarget/sdext/source/presenter/help/en-US,com.sun.PresenterScreen-$(sdext_PLATFORM)/presenter.xhp,com.sun.PresenterScreen/presenter.xhp)) +$(eval $(call gb_Extension_add_helptreefile,presenter-screen,$(SRCDIR)/sdext/source/presenter/help/en-US,/help.tree,com.sun.PresenterScreen/help.tree,com.sun.PresenterScreen-$(sdext_PLATFORM))) + + + # vim:set shiftwidth=4 softtabstop=4 expandtab: diff --git a/sdext/source/presenter/help/en-US/com.sun.PresenterScreen/help.tree b/sdext/source/presenter/help/en-US/com.sun.PresenterScreen/help.tree new file mode 100644 index 000000000000..44b3a6767d51 --- /dev/null +++ b/sdext/source/presenter/help/en-US/com.sun.PresenterScreen/help.tree @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * +--> + +<tree_view> +<help_section application="simpress" id="04" title="Presenter Console Keyboard Shortcuts"> + <node id="0411" title="Presenter Console Keyboard Shortcuts"> + <topic id="help/com.sun.PresenterScreen/presenter.xhp">Presenter Console Keyboard Shortcuts</topic> + </node> +</help_section> +</tree_view> diff --git a/sdext/source/presenter/help/en-US/com.sun.PresenterScreen/tree_strings.xhp b/sdext/source/presenter/help/en-US/com.sun.PresenterScreen/tree_strings.xhp new file mode 100644 index 000000000000..322cd6967fd6 --- /dev/null +++ b/sdext/source/presenter/help/en-US/com.sun.PresenterScreen/tree_strings.xhp @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<helpdocument version="1.0"> + +<!-- + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * +--> + +<meta> + <topic id="tree_stringsxml" indexer="include" status="PUBLISH"> + <title xml-lang="en-US" id="tit" localize="false">Note to translators:</title> + <filename>/source/presenter/help/en-US/com.sun.PresenterScreen/tree_strings.xhp</filename> + </topic> +</meta> + +<body> + <comment>This file contains extra strings for the contents (*.tree) files. No indexing!</comment> + <switch select="sys"> <case select="OS2"> + <paragraph role="heading" level="1" id="hd_id3150150" xml-lang="en-US" localize="false">File: help.tree</paragraph> + <paragraph role="paragraph" id="par_id3160160" xml-lang="en-US"><help_section application="simpress" id="04" title="Presenter Console Keyboard Shortcuts"></paragraph> + <paragraph role="paragraph" id="par_id3170170" xml-lang="en-US"><node id="0411" title="Presenter Console Keyboard Shortcuts"></paragraph> + </case> </switch> +</body> + +</helpdocument> diff --git a/solenv/gbuild/Extension.mk b/solenv/gbuild/Extension.mk index 2779dda1c2b6..c728e0d83d15 100644 --- a/solenv/gbuild/Extension.mk +++ b/solenv/gbuild/Extension.mk @@ -116,6 +116,20 @@ $(call gb_ExtensionTarget_add_helpfiles,$(1),$(2),$(3)) endef +# add a help.tree file, to be localized and compiled +# $(1): extension identifier +# $(2): absolute path prefix of en-US source file without $(3) (resp. $(4)) +# suffix +# $(3): relative path of (target) help.tree file (e.g., +# com.sun.wiki-publisher/help.tree) +# $(4): optional relative path of source help.tree file, when it differs from $(3) +# (i.e., if $(4) is empty the en-US source file is $(2)/$(3), otherwise it +# is $(2)/$(4)) +define gb_Extension_add_helptreefile +$(call gb_ExtensionTarget_add_helptreefile,$(1),$(2),$(3),$(4),$(5)) + +endef + define gb_Extension_use_package $(call gb_ExtensionTarget_use_package,$(1),$(2)) diff --git a/solenv/gbuild/ExtensionTarget.mk b/solenv/gbuild/ExtensionTarget.mk index 14b50e01f055..d89cfa867c92 100644 --- a/solenv/gbuild/ExtensionTarget.mk +++ b/solenv/gbuild/ExtensionTarget.mk @@ -38,6 +38,10 @@ gb_ExtensionTarget_XRMEXCOMMAND := \ gb_ExtensionTarget_PROPMERGETARGET := $(OUTDIR_FOR_BUILD)/bin/propmerge gb_ExtensionTarget_PROPMERGECOMMAND := \ $(PERL) $(gb_ExtensionTarget_PROPMERGETARGET) + +gb_ExtensionTarget_UPDATETREETARGET := $(SRCDIR)/l10ntools/scripts/update_tree.pl +gb_ExtensionTarget_UPDATETREECOMMAND := $(PERL) $(gb_ExtensionTarget_UPDATETREETARGET) + gb_ExtensionTarget_HELPEXTARGET := $(call gb_Executable_get_target_for_build,helpex) gb_ExtensionTarget_HELPEXCOMMAND := \ $(gb_Helper_set_ld_path) $(gb_ExtensionTarget_HELPEXTARGET) @@ -239,6 +243,21 @@ $(foreach lang,$(gb_ExtensionTarget_ALL_LANGS), \ $(call gb_ExtensionTarget__add_compiled_help_dependency_onelang,$(1),$(lang))) endef +# add a help.tree file, to be localized and compiled +# $(1): extension identifier +# $(2): absolute path prefix of en-US source file without $(3) (resp. $(4)) +# suffix +# $(3): relative path of (target) help.tree file (e.g., +# com.sun.wiki-publisher/help.tree) +# $(4): optional relative path of source help.tree file, when it differs from $(3) +# (i.e., if $(4) is empty the en-US source file is $(2)/$(3), otherwise it +# is $(2)/$(4)) +define gb_ExtensionTarget_add_helptreefile +$(foreach lang,$(gb_ExtensionTarget_ALL_LANGS), \ + $(call gb_ExtensionTarget__localize_helptreefile_onelang,$(1),$(2),$(3),$(4),$(lang),$(5)) \ + $(call gb_ExtensionTarget__add_compiled_help_dependency_onelang,$(1),$(lang))) +endef + # add a list of .xhp help files, to be localized and compiled # $(1): extension identifier # $(2): absolute path prefix of en-US source files without $(3) suffixes @@ -282,6 +301,35 @@ $(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) : \ endef +# localize one help.tree for one language; the result is stored as +# help/$(4)/$(3) in the extension's workdir; as a special case, if $(4) is +# "en-US", the source file is just copied, not passed through update_tree.pl +# $(1): extension identifier +# $(2): absolute path prefix of en-US source file without $(3) (resp. $(4)) +# suffix +# $(3): relative path of (target) help.tree file (see +# gb_ExtensionTarget_add_helptreefile) +# $(4): optional relative path of source help.tree file (see +# gb_ExtensionTarget_add_helptreefile) +# $(5): language +define gb_ExtensionTarget__localize_helptreefile_onelang +$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5).done : \ + $(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) +$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \ + SDF := $(gb_SDFLOCATION)$(subst $(SRCDIR),,$(subst $(WORKDIR)/CustomTarget,,$(2)/$(dir $(or $(4),$(3)))))localize.sdf +$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : $$(SDF) +$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \ + $(if $(filter-out en-US,$(WITH_LANG)),$(gb_ExtensionTarget_UPDATETREETARGET)) | \ + $(2)/$(4) +$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \ + $(2)/$(or $(4),$(3)) + $$(call gb_Output_announce,$(1) $(3) $(5),$(true),TRE,3) + $$(call gb_Helper_abbreviate_dirs, \ + mkdir -p $$(dir $$@) && \ + $(gb_ExtensionTarget_UPDATETREECOMMAND) $$< $(5) $$(SDF) $$@ $(6) ) + +endef + # compile help for one language; the result is stored as help/$(3)/ in the # extension's rootdir and marked for zipping into the .oxt # $(1): extension identifier @@ -298,8 +346,7 @@ $(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(2).done : \ $(call gb_ExtensionTarget_get_rootdir,$(1))/help/.dir $$(call gb_Output_announce,$(1) $(2),$(true),XHC,3) $$(call gb_Helper_abbreviate_dirs, \ - rm -rf $$(basename $$@) && \ - mkdir $$(basename $$@) && \ + mkdir -p $$(basename $$@) && \ $(gb_ExtensionTarget_HELPLINKERCOMMAND) -mod help \ -extlangsrc $(call gb_ExtensionTarget_get_workdir,$(1))/help/$(2) \ -sty $(OUTDIR_FOR_BUILD)/bin/embed.xsl \ diff --git a/swext/Extension_wiki-publisher.mk b/swext/Extension_wiki-publisher.mk index e9e5088990ef..6f4e4a3d2eb4 100644 --- a/swext/Extension_wiki-publisher.mk +++ b/swext/Extension_wiki-publisher.mk @@ -68,4 +68,6 @@ $(eval $(call gb_Extension_add_helpfile,wiki-publisher,$(SRCDIR)/swext/mediawiki $(eval $(call gb_Extension_add_helpfile,wiki-publisher,$(SRCDIR)/swext/mediawiki/help,com.sun.wiki-publisher/wiki.xhp,wiki.xhp)) $(eval $(call gb_Extension_add_helpfile,wiki-publisher,$(SRCDIR)/swext/mediawiki/help,com.sun.wiki-publisher/wikisettings.xhp,wikisettings.xhp)) +$(eval $(call gb_Extension_add_helptreefile,wiki-publisher,$(SRCDIR)/swext/mediawiki/help,/help.tree,/help.tree,com.sun.wiki-publisher)) + # vim: set noet sw=4 ts=4: diff --git a/swext/mediawiki/help/help.tree b/swext/mediawiki/help/help.tree new file mode 100644 index 000000000000..d258c948bdbb --- /dev/null +++ b/swext/mediawiki/help/help.tree @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * +--> + +<tree_view> +<help_section application="swriter" id="02" title="MediaWiki"> + <node id="0224" title="MediaWiki"> + <topic id="help/help/wiki.xhp">MediaWiki</topic> + <topic id="help/help/wikiaccount.xhp">Wiki Publisher</topic> + <topic id="help/help/wikiformats.xhp">MediaWiki Formats</topic> + <topic id="help/help/wikisend.xhp">Send to MediaWiki</topic> + <topic id="help/help/wikisettings.xhp">MediaWiki Options</topic> + </node> +</help_section> +</tree_view> diff --git a/swext/mediawiki/help/tree_strings.xhp b/swext/mediawiki/help/tree_strings.xhp new file mode 100644 index 000000000000..2ccabc71c7b9 --- /dev/null +++ b/swext/mediawiki/help/tree_strings.xhp @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<helpdocument version="1.0"> + +<!-- + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * +--> + +<meta> + <topic id="tree_stringsxml" indexer="include" status="PUBLISH"> + <title xml-lang="en-US" id="tit" localize="false">Note to translators:</title> + <filename>/mediawiki/help/treestrings.xhp</filename> + </topic> +</meta> + +<body> + <comment>This file contains extra strings for the contents (*.tree) files. No indexing!</comment> + <switch select="sys"> <case select="OS2"> + <paragraph role="heading" level="1" id="hd_id3150150" xml-lang="en-US" localize="false">File: help.tree</paragraph> + <paragraph role="paragraph" id="par_id3160160" xml-lang="en-US"><help_section application="swriter" id="02" title="MediaWiki"></paragraph> + <paragraph role="paragraph" id="par_id3170170" xml-lang="en-US"><node id="0224" title="MediaWiki"></paragraph> + </case> </switch> +</body> + +</helpdocument> |