3 It seems there is no particularly nice way to do this - which
4 sucks, presumably that's a result of a lack of code re-use in other
5 places. [ taken from the Debian patch ]
8 Index: xmlhelp/source/cxxhelp/provider/urlparameter.cxx
9 ===================================================================
10 RCS file: /cvs/util/xmlhelp/source/cxxhelp/provider/urlparameter.cxx,v
11 retrieving revision 1.25
12 diff -u -p -u -r1.25 urlparameter.cxx
13 --- xmlhelp/source/cxxhelp/provider/urlparameter.cxx 31 Oct 2001 13:08:14 -0000 1.25
14 +++ xmlhelp/source/cxxhelp/provider/urlparameter.cxx 17 Jan 2003 16:25:16 -0000
15 @@ -266,12 +266,32 @@ rtl::OUString URLParameter::get_title()
22 rtl::OUString URLParameter::get_language()
24 if( m_aLanguage.getLength() == 0 )
25 return m_aDefaultLanguage;
27 + // Check that we have the necessary files. The rationale is if
28 + // help/<lang>/err.html exists then, we have localized help
29 + // data, possibly not installed. Otherwise, we won't have
30 + // localized help and we try to fallback to English.
31 + rtl::OUString fileURL =
32 + m_pDatabases->getInstallPathAsURL()
33 + + m_pDatabases->lang( m_aLanguage )
34 + + rtl::OUString::createFromAscii( "/err.html" );
36 + osl::DirectoryItem aDirItem;
37 + osl::File aFile( fileURL );
38 + osl::FileStatus aStatus( FileStatusMask_FileSize );
40 + if( osl::FileBase::E_None != osl::DirectoryItem::get( fileURL,aDirItem ) ||
41 + osl::FileBase::E_None != aFile.open( OpenFlag_Read ) ||
42 + osl::FileBase::E_None != aDirItem.getFileStatus( aStatus ) )
44 + m_aLanguage = rtl::OUString::createFromAscii( "en-US" );
49 Index: xmlhelp/source/treeview/tvread.cxx
50 ===================================================================
51 RCS file: /cvs/util/xmlhelp/source/treeview/tvread.cxx,v
52 retrieving revision 1.13
53 diff -u -p -u -r1.13 tvread.cxx
54 --- xmlhelp/source/treeview/tvread.cxx 8 Nov 2001 16:42:46 -0000 1.13
55 +++ xmlhelp/source/treeview/tvread.cxx 17 Jan 2003 16:25:16 -0000
56 @@ -704,7 +704,27 @@ ConfigData TVChildTarget::init( const Re
58 ret = locale.copy( 0,idx );
61 + rtl::OUString test_url = url + ret;
63 + // Check that we have the necessary files. The rationale is if
64 + // help/<lang>/err.html exists then, we have localized help
65 + // data, possibly not installed. Otherwise, we won't have
66 + // localized help and we try to fallback to English.
67 + rtl::OUString errfileURL = test_url + rtl::OUString::createFromAscii( "/err.html" );
69 + osl::DirectoryItem aDirItem;
70 + osl::File aFile( errfileURL );
71 + osl::FileStatus aStatus( FileStatusMask_FileSize );
73 + if( osl::FileBase::E_None != osl::DirectoryItem::get( errfileURL,aDirItem ) ||
74 + osl::FileBase::E_None != aFile.open( OpenFlag_Read ) ||
75 + osl::FileBase::E_None != aDirItem.getFileStatus( aStatus ) )
77 + locale = rtl::OUString::createFromAscii( "en-US" );
78 + test_url = url + locale.copy( 0, 2 );
83 // first of all, try do determine whether there are any *.tree files present