Farsi translation and xepersian.sty support

git-svn-id: svn://svn.code.sf.net/p/writer2latex/code/trunk@106 f0f2a975-2e09-46c8-9428-3b39399b9f3c
This commit is contained in:
henrikjust 2011-05-09 13:47:46 +00:00
parent bc9545dbb1
commit f7dd0f8085
19 changed files with 398 additions and 55 deletions

View file

@ -1,7 +1,7 @@
Writer2LaTeX version 1.1.7 (alpha test release) Writer2LaTeX version 1.1.8 (alpha test release)
=============================================== ===============================================
This is the distribution of Writer2LaTeX version 1.1.7 This is the distribution of Writer2LaTeX version 1.1.8
Latest version can be found at the web site Latest version can be found at the web site
http://writer2latex.sourceforge.net http://writer2latex.sourceforge.net
@ -14,5 +14,5 @@ Bugs and feature requests should be reported to
henrikjust (at) openoffice.org henrikjust (at) openoffice.org
April 2011 May 2011
Henrik Just Henrik Just

View file

@ -1,5 +1,11 @@
Changelog for Writer2LaTeX version 1.0 -> 1.2 Changelog for Writer2LaTeX version 1.0 -> 1.2
---------- version 1.1.8 ----------
[all] Added Farsi translation from Mostafa Barmshory
[w2l] Added support for xepersian.sty (fa_IR locale, requires XeTeX backend and multilingual=true)
---------- version 1.1.7 ---------- ---------- version 1.1.7 ----------
[all] Bugfix: Fixed null pointer exception for tables with unbalanced rows [all] Bugfix: Fixed null pointer exception for tables with unbalanced rows

Binary file not shown.

View file

@ -20,7 +20,7 @@
* *
* All Rights Reserved. * All Rights Reserved.
* *
* Version 1.2 (2011-04-20) * Version 1.2 (2011-05-09)
* *
*/ */
@ -32,8 +32,8 @@ package writer2latex.api;
public class ConverterFactory { public class ConverterFactory {
// Version information // Version information
private static final String VERSION = "1.1.7"; private static final String VERSION = "1.1.8";
private static final String DATE = "2011-04-20"; private static final String DATE = "2011-05-09";
/** Return the Writer2LaTeX version in the form /** Return the Writer2LaTeX version in the form
* (major version).(minor version).(patch level)<br/> * (major version).(minor version).(patch level)<br/>

View file

@ -20,7 +20,7 @@
* *
* All Rights Reserved. * All Rights Reserved.
* *
* Version 1.2 (2011-02-19) * Version 1.2 (2011-05-07)
* *
*/ */

View file

@ -20,7 +20,7 @@
* *
* All Rights Reserved. * All Rights Reserved.
* *
* Version 1.2 (2011-03-10) * Version 1.2 (2011-05-07)
* *
*/ */
@ -393,7 +393,7 @@ public class ClassicI18n extends I18n {
pack.append("\\usepackage{amssymb,amsfonts,textcomp}").nl(); pack.append("\\usepackage{amssymb,amsfonts,textcomp}").nl();
} }
/** Apply a language language /** Apply a language language
* @param style the OOo style to read attributes from * @param style the OOo style to read attributes from
* @param bDecl true if declaration form is required * @param bDecl true if declaration form is required

View file

@ -20,7 +20,7 @@
* *
* All Rights Reserved. * All Rights Reserved.
* *
* Version 1.2 (2011-03-10) * Version 1.2 (2011-05-09)
* *
*/ */
@ -40,6 +40,9 @@ import writer2latex.latex.util.BeforeAfter;
*/ */
public abstract class I18n { public abstract class I18n {
// **** Global variables **** // **** Global variables ****
// The office reader
protected OfficeReader ofr;
// Configuration items // Configuration items
protected LaTeXConfig config; protected LaTeXConfig config;
@ -48,9 +51,11 @@ public abstract class I18n {
protected boolean bAlwaysUseDefaultLang; // Ignore sLang parameter to convert() protected boolean bAlwaysUseDefaultLang; // Ignore sLang parameter to convert()
// Collected data // Collected data
protected String sDefaultLanguage; // The default ISO language to use protected String sDefaultCTLLanguage; // The default CTL ISO language to use
protected String sDefaultCountry; // The default ISO country to use protected String sDefaultCTLCountry; // The default CTL ISO country to use
protected HashSet<String> languages = new HashSet<String>(); // All languages used protected String sDefaultLanguage; // The default LCG ISO language to use
protected String sDefaultCountry; // The default LCG ISO country to use
protected HashSet<String> languages = new HashSet<String>(); // All LCG languages used
// **** Constructors **** // **** Constructors ****
@ -60,8 +65,8 @@ public abstract class I18n {
* @param palette the ConverterPalette (unused) * @param palette the ConverterPalette (unused)
*/ */
public I18n(OfficeReader ofr, LaTeXConfig config, ConverterPalette palette) { public I18n(OfficeReader ofr, LaTeXConfig config, ConverterPalette palette) {
// We don't need the palette and the office reader is only used to // We don't need the palette
// identify the default language this.ofr = ofr;
// Set up config items // Set up config items
this.config = config; this.config = config;
@ -77,6 +82,8 @@ public abstract class I18n {
if (style!=null) { if (style!=null) {
sDefaultLanguage = style.getProperty(XMLString.FO_LANGUAGE); sDefaultLanguage = style.getProperty(XMLString.FO_LANGUAGE);
sDefaultCountry = style.getProperty(XMLString.FO_COUNTRY); sDefaultCountry = style.getProperty(XMLString.FO_COUNTRY);
sDefaultCTLLanguage = style.getProperty(XMLString.STYLE_LANGUAGE_COMPLEX);
sDefaultCTLCountry = style.getProperty(XMLString.STYLE_COUNTRY_COMPLEX);
} }
} }
else { else {

View file

@ -20,12 +20,14 @@
* *
* All Rights Reserved. * All Rights Reserved.
* *
* Version 1.2 (2011-03-10) * Version 1.2 (2011-05-06)
* *
*/ */
package writer2latex.latex.i18n; package writer2latex.latex.i18n;
import java.text.Bidi;
import writer2latex.office.*; import writer2latex.office.*;
import writer2latex.latex.LaTeXConfig; import writer2latex.latex.LaTeXConfig;
import writer2latex.latex.LaTeXDocumentPortion; import writer2latex.latex.LaTeXDocumentPortion;
@ -37,6 +39,8 @@ import writer2latex.latex.util.BeforeAfter;
public class XeTeXI18n extends I18n { public class XeTeXI18n extends I18n {
private Polyglossia polyglossia; private Polyglossia polyglossia;
private boolean bUsePolyglossia;
private boolean bUseXepersian;
/** Construct a new XeTeXI18n as ConverterHelper /** Construct a new XeTeXI18n as ConverterHelper
* @param ofr the OfficeReader to get language information from * @param ofr the OfficeReader to get language information from
@ -47,6 +51,14 @@ public class XeTeXI18n extends I18n {
super(ofr,config,palette); super(ofr,config,palette);
polyglossia = new Polyglossia(); polyglossia = new Polyglossia();
polyglossia.applyLanguage(sDefaultLanguage, sDefaultCountry); polyglossia.applyLanguage(sDefaultLanguage, sDefaultCountry);
// Currently all languages except farsi (fa_IR) are handled with polyglossia
// Actually only LTR languages are supported as yet
// TODO: Support CTL languages using polyglossia
bUsePolyglossia = !"fa".equals(sDefaultCTLLanguage);
// For farsi, we load xepersian.sty
// TODO: Add a use_xepersian option, using polyglossia if false
bUseXepersian = !bUsePolyglossia;
} }
/** Add declarations to the preamble to load the required packages /** Add declarations to the preamble to load the required packages
@ -58,20 +70,35 @@ public class XeTeXI18n extends I18n {
.append("\\usepackage{fontspec}").nl() .append("\\usepackage{fontspec}").nl()
.append("\\usepackage{xunicode}").nl() .append("\\usepackage{xunicode}").nl()
.append("\\usepackage{xltxtra}").nl(); .append("\\usepackage{xltxtra}").nl();
String[] polyglossiaDeclarations = polyglossia.getDeclarations(); if (bUsePolyglossia) {
for (String s: polyglossiaDeclarations) { String[] polyglossiaDeclarations = polyglossia.getDeclarations();
pack.append(s).nl(); for (String s: polyglossiaDeclarations) {
pack.append(s).nl();
}
}
else if (bUseXepersian) {
// xepersian.sty must be loaded as the last package
// We put it in the declarations part to achieve this
decl.append("\\usepackage{xepersian}").nl();
// Set the default font to the default CTL font defined in the document
StyleWithProperties defaultStyle = ofr.getDefaultParStyle();
if (defaultStyle!=null) {
String sDefaultCTLFont = defaultStyle.getProperty(XMLString.STYLE_FONT_NAME_COMPLEX);
if (sDefaultCTLFont!=null) {
decl.append("\\settextfont{").append(sDefaultCTLFont).append("}").nl();
}
}
} }
} }
/** Apply a language language /** Apply a language
* @param style the OOo style to read attributes from * @param style the OOo style to read attributes from
* @param bDecl true if declaration form is required * @param bDecl true if declaration form is required
* @param bInherit true if inherited properties should be used * @param bInherit true if inherited properties should be used
* @param ba the <code>BeforeAfter</code> to add LaTeX code to. * @param ba the <code>BeforeAfter</code> to add LaTeX code to.
*/ */
public void applyLanguage(StyleWithProperties style, boolean bDecl, boolean bInherit, BeforeAfter ba) { public void applyLanguage(StyleWithProperties style, boolean bDecl, boolean bInherit, BeforeAfter ba) {
if (!bAlwaysUseDefaultLang && style!=null) { if (bUsePolyglossia && !bAlwaysUseDefaultLang && style!=null) {
// TODO: Support CTL and CJK // TODO: Support CTL and CJK
String sISOLang = style.getProperty(XMLString.FO_LANGUAGE,bInherit); String sISOLang = style.getProperty(XMLString.FO_LANGUAGE,bInherit);
String sISOCountry = style.getProperty(XMLString.FO_COUNTRY, bInherit); String sISOCountry = style.getProperty(XMLString.FO_COUNTRY, bInherit);
@ -109,34 +136,71 @@ public class XeTeXI18n extends I18n {
public String convert(String s, boolean bMathMode, String sLang){ public String convert(String s, boolean bMathMode, String sLang){
// TODO: Do we need anything special for math mode? // TODO: Do we need anything special for math mode?
StringBuffer buf = new StringBuffer(); StringBuffer buf = new StringBuffer();
int nLen = s.length();
char c; char c;
int nLen = s.length(); if (bUsePolyglossia) {
int i = 0; int i = 0;
while (i<nLen) { while (i<nLen) {
ReplacementTrieNode node = stringReplace.get(s,i,nLen); ReplacementTrieNode node = stringReplace.get(s,i,nLen);
if (node!=null) { if (node!=null) {
buf.append(node.getLaTeXCode()); buf.append(node.getLaTeXCode());
i += node.getInputLength(); i += node.getInputLength();
}
else {
c = s.charAt(i++);
switch (c) {
case '#' : buf.append("\\#"); break; // Parameter
case '$' : buf.append("\\$"); break; // Math shift
case '%' : buf.append("\\%"); break; // Comment
case '&' : buf.append("\\&"); break; // Alignment tab
case '\\' : buf.append("\\textbackslash{}"); break; // Escape
case '^' : buf.append("\\^{}"); break; // Superscript
case '_' : buf.append("\\_"); break; // Subscript
case '{' : buf.append("\\{"); break; // Begin group
case '}' : buf.append("\\}"); break; // End group
case '~' : buf.append("\\textasciitilde{}"); break; // Active (non-breaking space)
case '\u00A0' : buf.append('~'); break; // Make non-breaking spaces visible
default: buf.append(c);
} }
} else {
c = s.charAt(i++);
convert (c,buf);
}
}
} }
return buf.toString(); else if (bUseXepersian) {
// TODO: Add support for string replace
Bidi bidi = new Bidi(s,Bidi.DIRECTION_RIGHT_TO_LEFT);
int nCurrentLevel = bidi.getBaseLevel();
int nNestingLevel = 0;
for (int i=0; i<nLen; i++) {
int nLevel = bidi.getLevelAt(i);
if (nLevel>nCurrentLevel) {
if (nLevel%2==0) { // even is LTR
buf.append("\\lr{");
}
else { // odd is RTL
buf.append("\\rl{");
}
nCurrentLevel=nLevel;
nNestingLevel++;
}
else if (nLevel<nCurrentLevel) {
buf.append("}");
nCurrentLevel=nLevel;
nNestingLevel--;
}
convert(s.charAt(i),buf);
}
while (nNestingLevel>0) {
buf.append("}");
nNestingLevel--;
}
}
return buf.toString();
}
private void convert(char c, StringBuffer buf) {
switch (c) {
case '#' : buf.append("\\#"); break; // Parameter
case '$' : buf.append("\\$"); break; // Math shift
case '%' : buf.append("\\%"); break; // Comment
case '&' : buf.append("\\&"); break; // Alignment tab
case '\\' : buf.append("\\textbackslash{}"); break; // Escape
case '^' : buf.append("\\^{}"); break; // Superscript
case '_' : buf.append("\\_"); break; // Subscript
case '{' : buf.append("\\{"); break; // Begin group
case '}' : buf.append("\\}"); break; // End group
case '~' : buf.append("\\textasciitilde{}"); break; // Active (non-breaking space)
case '\u00A0' : buf.append('~'); break; // Make non-breaking spaces visible
default: buf.append(c);
}
} }

View file

@ -20,7 +20,7 @@
* *
* All Rights Reserved. * All Rights Reserved.
* *
* Version 1.2 (2011-03-21) * Version 1.2 (2011-05-09)
* *
*/ */
@ -249,7 +249,13 @@ public class Converter extends ConverterBase {
// Set locale to document language // Set locale to document language
StyleWithProperties style = ofr.isSpreadsheet() ? ofr.getDefaultCellStyle() : ofr.getDefaultParStyle(); StyleWithProperties style = ofr.isSpreadsheet() ? ofr.getDefaultCellStyle() : ofr.getDefaultParStyle();
if (style!=null) { if (style!=null) {
l10n.setLocale(style.getProperty(XMLString.FO_LANGUAGE), style.getProperty(XMLString.FO_COUNTRY)); // The only CTL language recognized currently is farsi
if ("fa".equals(style.getProperty(XMLString.STYLE_LANGUAGE_COMPLEX))) {
l10n.setLocale("fa", "IR");
}
else {
l10n.setLocale(style.getProperty(XMLString.FO_LANGUAGE), style.getProperty(XMLString.FO_COUNTRY));
}
} }
// Set the main content width // Set the main content width

View file

@ -279,6 +279,20 @@ public class L10n {
case DOCUMENT: return "Document"; case DOCUMENT: return "Document";
} }
} }
if (sLocale.startsWith("fa")) { // Farsi
switch (nString) {
case UP: return "\u0628\u0627\u0644\u0627";
case FIRST : return "\u0627\u0648\u0644";
case PREVIOUS : return "\u0642\u0628\u0644\u06cc";
case NEXT : return "\u0628\u0639\u062f\u06cc";
case LAST : return "\u0627\u062e\u0631\u06cc\u0646";
//case CONTENTS : return "??";
case INDEX : return "\u0641\u0647\u0631\u0633\u062a";
case HOME : return "\u062e\u0627\u0646\u0647";
case DIRECTORY: return "\u067e\u0648\u0634\u0647";
case DOCUMENT: return "\u0645\u0633\u062a\u0646\u062f";
}
}
// English - default // English - default
switch (nString) { switch (nString) {
case UP: return "Up"; case UP: return "Up";

View file

@ -0,0 +1,111 @@
# LaTeXOptions strings=Farsi
0.LaTeXOptions.HelpText=
1.LaTeXOptions.Title=\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0644\u06cc\u062a\u06a9
2.LaTeXOptions.FixedLine1.HelpText=
3.LaTeXOptions.FixedLine1.Label=
4.LaTeXOptions.GeneralLabel.HelpText=
5.LaTeXOptions.GeneralLabel.Label=\u0639\u0645\u0648\u0645\u06cc
6.LaTeXOptions.ConfigLabel.HelpText=
7.LaTeXOptions.ConfigLabel.Label=\u0642\u0627\u0644\u0628 \u0644\u06cc\u062a\u06a9
8.LaTeXOptions.Config.HelpText=
137.Config.StringItemList=\u0645\u0642\u0627\u0644\u0647 \u06a9\u0627\u0645\u0644\u0627 \u067e\u0627\u06a9
138.Config.StringItemList=\u0645\u0642\u0627\u0644\u0647 \u067e\u0627\u06a9
139.Config.StringItemList=\u067e\u06cc\u0634 \u0641\u0631\u0636
140.Config.StringItemList=\u0628\u0647\u06cc\u0646\u0647 \u0634\u062f\u0647 \u0628\u0631\u0627\u06cc \u0686\u0627\u067e
141.Config.StringItemList=\u0628\u0647\u06cc\u0646\u0647 \u0634\u062f\u0647 \u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634
142.Config.StringItemList=\u062f\u0644\u062e\u0648\u0627\u0647
15.LaTeXOptions.BackendLabel.HelpText=
16.LaTeXOptions.BackendLabel.Label=\u067e\u06cc\u0634 \u0632\u0645\u06cc\u0646\u0647
17.LaTeXOptions.Backend.HelpText=
116.Backend.StringItemList=\u06cc\u06a9\u062a\u0627
117.Backend.StringItemList=Pdf (pdfTeX)
118.Backend.StringItemList=\u067e\u0633\u062a \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a
119.Backend.StringItemList=\u062a\u0639\u06cc\u06cc\u0646 \u0646\u0634\u062f\u0647
22.LaTeXOptions.InputencodingLabel.HelpText=
23.LaTeXOptions.InputencodingLabel.Label=\u0631\u0648\u0634 \u06a9\u062f\u06af\u0630\u0627\u0631\u06cc
24.LaTeXOptions.Inputencoding.HelpText=
120.Inputencoding.StringItemList=\u0627\u0633\u06a9\u06cc
121.Inputencoding.StringItemList=West European (ISO 8859-1)
122.Inputencoding.StringItemList=East European (ISO 8859-2)
123.Inputencoding.StringItemList=Latin/Greek (ISO 8859-7)
124.Inputencoding.StringItemList=Microsoft East European (Cp1250)
125.Inputencoding.StringItemList=Microsoft Cyrillic (Cp1251)
126.Inputencoding.StringItemList=Russian (koi8-r)
127.Inputencoding.StringItemList=Unicode (UTF8)
33.LaTeXOptions.Multilingual.HelpText=
34.LaTeXOptions.Multilingual.Label=\u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u06cc
35.LaTeXOptions.GreekMath.HelpText=
36.LaTeXOptions.GreekMath.Label=\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0648\u0627\u0698\u06a9 \u0647\u0627\u06cc \u06cc\u0648\u0646\u0627\u0646\u06cc \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0646\u0645\u0627\u062f
37.LaTeXOptions.AdditionalSymbols.HelpText=
38.LaTeXOptions.AdditionalSymbols.Label=\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u0645\u0627\u062f\u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc
39.LaTeXOptions.BibliographyLabel.HelpText=
40.LaTeXOptions.BibliographyLabel.Label=Bibliography
41.LaTeXOptions.UseBibtex.HelpText=
42.LaTeXOptions.UseBibtex.Label=Use BibTeX for bibliography
43.LaTeXOptions.BibtexStyleLabel.HelpText=
44.LaTeXOptions.BibtexStyleLabel.Label=BibTeX style
45.LaTeXOptions.BibtexStyle.HelpText=
46.BibtexStyle.StringItemList=plain
47.BibtexStyle.StringItemList=unsrt
48.BibtexStyle.StringItemList=alpha
49.BibtexStyle.StringItemList=abbrv
50.LaTeXOptions.BibtexStyle.Text=
51.LaTeXOptions.FilesLabel.HelpText=
52.LaTeXOptions.FilesLabel.Label=\u067e\u0631\u0648\u0646\u062f\u0647\u200c\u0647\u0627
53.LaTeXOptions.WrapLines.HelpText=
54.LaTeXOptions.WrapLines.Label=\u0634\u06a9\u0627\u0646\u062f\u0646 \u062e\u0637\u0647\u0627\u06cc \u0628\u0632\u0631\u06af
55.LaTeXOptions.WrapLinesAfterLabel.HelpText=
56.LaTeXOptions.WrapLinesAfterLabel.Label=\u0628\u0639\u062f \u0627\u0632 \u0648\u0627\u0698\u06a9
57.LaTeXOptions.WrapLinesAfter.HelpText=
58.LaTeXOptions.SplitLinkedSections.HelpText=
59.LaTeXOptions.SplitLinkedSections.Label=\u0634\u06a9\u0627\u0646\u062f\u0646 \u0645\u0633\u062a\u0646\u062f \u0628\u0639\u062f \u0627\u0632 \u0642\u0633\u0645\u062a\u200c\u0647\u0627\u06cc \u067e\u06cc\u0648\u0646\u062f \u062f\u0627\u062f\u0647 \u0634\u062f\u0647
60.LaTeXOptions.SplitToplevelSections.HelpText=
61.LaTeXOptions.SplitToplevelSections.Label=\u0634\u06a9\u0627\u0646\u062f\u0646 \u0645\u0633\u062a\u0646\u062f \u0628\u0639\u062f \u0627\u0632 \u0628\u0627\u0644\u0627\u062a\u0631\u06cc\u0646 \u0633\u0637\u062d \u0642\u0633\u0645\u062a\u200c\u0647\u0627
62.LaTeXOptions.SaveImagesInSubdir.HelpText=
63.LaTeXOptions.SaveImagesInSubdir.Label=\u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0646 \u0634\u06a9\u0644\u200c\u0647\u0627 \u062f\u0631 \u0632\u06cc\u0631\u067e\u0648\u0634\u0647
64.LaTeXOptions.SpecialContentLabel.HelpText=
65.LaTeXOptions.SpecialContentLabel.Label=Special content
66.LaTeXOptions.NotesLabel.HelpText=
67.LaTeXOptions.NotesLabel.Label=\u0635\u0627\u062f\u0631\u06a9\u0631\u062f\u0646 \u06cc\u0627\u062f\u0627\u0634\u062a
68.LaTeXOptions.Notes.HelpText=
128.Notes.StringItemList=\u0635\u0627\u062f\u0631 \u0646\u06a9\u0646
129.Notes.StringItemList=\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062a\u0648\u0636\u06cc\u062d
130.Notes.StringItemList=\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062a\u0648\u0636\u06cc\u062d \u062a\u0631\u06a9\u06cc\u0628 \u0634\u062f\u0647
131.Notes.StringItemList=\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0627\u0639\u0644\u0627\u0645\u200c\u0647\u0627 \u062f\u0631 PDF
73.LaTeXOptions.Metadata.HelpText=
74.LaTeXOptions.Metadata.Label=\u0635\u0627\u062f\u0631 \u06a9\u0631\u062f\u0646 \u062a\u0646\u0638\u06cc\u0645 \u0647\u0627\u06cc \u0645\u0633\u062a\u0646\u062f
75.LaTeXOptions.FiguresAndTablesLabel.HelpText=
76.LaTeXOptions.FiguresAndTablesLabel.Label=\u0634\u06a9\u0644\u0647\u0627 \u0648 \u062c\u062f\u0648\u0644\u0647\u0627
77.LaTeXOptions.OriginalImageSize.HelpText=
78.LaTeXOptions.OriginalImageSize.Label=\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0646\u062f\u0627\u0632\u0647 \u0627\u0635\u0644\u06cc \u0634\u06a9\u0644
79.LaTeXOptions.OptimizeSimpleTables.HelpText=
80.LaTeXOptions.OptimizeSimpleTables.Label=\u0628\u0647\u06cc\u0646\u0647 \u06a9\u0631\u062f\u0646 \u062c\u062f\u0648\u0644\u0647\u0627\u06cc \u0633\u0627\u062f\u0647
81.LaTeXOptions.SimpleTableLimitLabel.HelpText=
82.LaTeXOptions.SimpleTableLimitLabel.Label=\u0628\u0632\u0631\u06af \u06a9\u0631\u062f\u0646 \u0639\u0631\u0636 \u0628\u0631\u0627\u06cc \u0648\u0627\u0698\u06a9
83.LaTeXOptions.SimpleTableLimit.HelpText=
84.LaTeXOptions.FloatTables.HelpText=
85.LaTeXOptions.FloatTables.Label=\u062c\u062f\u0648\u0644\u0647\u0627\u06cc \u0634\u0646\u0627\u0648\u0631
86.LaTeXOptions.FloatFigures.HelpText=
87.LaTeXOptions.FloatFigures.Label=\u0634\u06a9\u0644\u0647\u0627\u06cc \u0634\u0646\u0627\u0648\u0631
88.LaTeXOptions.FloatOptionsLabel.HelpText=
89.LaTeXOptions.FloatOptionsLabel.Label=\u0645\u06a9\u0627\u0646\u0647\u0627 \u0634\u0646\u0627\u0648\u0631
90.LaTeXOptions.FloatOptions.HelpText=
132.FloatOptions.StringItemList=\u0628\u0627\u0644\u0627 \u0648 \u06cc\u0627 \u067e\u0627\u06cc\u06cc\u0646 \u0628\u0631\u06af\u0647
133.FloatOptions.StringItemList=\u0628\u0627\u0644\u0627\u06cc \u0628\u0631\u06af\u0647
134.FloatOptions.StringItemList=\u067e\u0627\u06cc\u06cc\u0646 \u0628\u0631\u06af\u0647
135.FloatOptions.StringItemList=\u0627\u06cc\u0646\u062c\u0627 \u06cc\u0627 \u0628\u0627\u0644\u0627\u06cc \u0628\u0631\u06af\u0647
136.FloatOptions.StringItemList=\u0627\u06cc\u0646\u062c\u0627 \u06cc\u0627 \u067e\u0627\u06cc\u06cc\u0646 \u0628\u0631\u06af\u0647
96.LaTeXOptions.AutoCorrectLabel.HelpText=
97.LaTeXOptions.AutoCorrectLabel.Label=\u0627\u0635\u0644\u0627\u062d \u062e\u0648\u062f\u06a9\u0627\u0631
98.LaTeXOptions.IgnoreHardPageBreaks.HelpText=
99.LaTeXOptions.IgnoreHardPageBreaks.Label=Ignore hard page breaks
100.LaTeXOptions.IgnoreHardLineBreaks.HelpText=
101.LaTeXOptions.IgnoreHardLineBreaks.Label=Ignore hard line breaks
102.LaTeXOptions.IgnoreEmptyParagraphs.HelpText=
103.LaTeXOptions.IgnoreEmptyParagraphs.Label=\u0635\u0631\u0641 \u0646\u0638\u0631 \u0627\u0632 \u067e\u0627\u0631\u0627\u06af\u0631\u0627\u0641\u0647\u0627\u06cc \u062e\u0627\u0644\u06cc
104.LaTeXOptions.IgnoreDoubleSpaces.HelpText=
105.LaTeXOptions.IgnoreDoubleSpaces.Label=\u0635\u0631\u0641 \u0646\u0638\u0631 \u0627\u0632 \u0641\u0636\u0627\u06cc \u062e\u0627\u0644\u06cc \u0645\u062a\u0648\u0627\u0644\u06cc
106.LaTeXOptions.ExportButton.HelpText=
107.LaTeXOptions.ExportButton.Label=\u0635\u0627\u062f\u0631 \u06a9\u0631\u062f\u0646
108.LaTeXOptions.CancelButton.HelpText=
109.LaTeXOptions.CancelButton.Label=\u0627\u0646\u0635\u0631\u0627\u0641

View file

@ -0,0 +1 @@
Writer2LaTeX ابزارهای مورد نیاز باری صادر کردن مستندها بر اساس قالب لیتک را فراهم کرده است

View file

@ -5,7 +5,7 @@
<identifier value="org.openoffice.da.writer2latex.oxt"/> <identifier value="org.openoffice.da.writer2latex.oxt"/>
<version value="1.1.7" /> <version value="1.1.8" />
<dependencies> <dependencies>
<OpenOffice.org-minimal-version value="3.0" d:name="OpenOffice.org 3.0"/> <OpenOffice.org-minimal-version value="3.0" d:name="OpenOffice.org 3.0"/>
@ -32,6 +32,7 @@
<name lang="ru">Фильтры экспорта Writer2LaTeX</name> <name lang="ru">Фильтры экспорта Writer2LaTeX</name>
<name lang="uk">Фільтри експорту Writer2LaTeX</name> <name lang="uk">Фільтри експорту Writer2LaTeX</name>
<name lang="tr">Writer2LaTeX ihraç etme filitreleri</name> <name lang="tr">Writer2LaTeX ihraç etme filitreleri</name>
<name lang="fa">قربالگر صادر کردن Writer2LaTeX</name>
</display-name> </display-name>
<icon> <icon>

View file

@ -0,0 +1,131 @@
# Strings for Dialog Library W2XDialogs=Persian
0.XhtmlOptions.HelpText=\u062a\u0646\u0638\u06cc\u0645\u0627\u062a XHTML
1.XhtmlOptions.Title=
2.XhtmlOptions.StyleLabel.HelpText=
3.XhtmlOptions.StyleLabel.Label=\u0642\u0627\u0644\u0628
4.XhtmlOptions.ConfigLabel.HelpText=
5.XhtmlOptions.ConfigLabel.Label=\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0642\u0627\u0644\u0628
6.XhtmlOptions.Config.HelpText=
17.XhtmlOptions.ScalingLabel.HelpText=
18.XhtmlOptions.ScalingLabel.Label=Scaling
19.XhtmlOptions.Scaling.HelpText=
20.XhtmlOptions.ScalingPercentLabel.HelpText=
21.XhtmlOptions.ScalingPercentLabel.Label=%
22.XhtmlOptions.ColumnScalingLabel.HelpText=
23.XhtmlOptions.ColumnScalingLabel.Label=Column scaling
24.XhtmlOptions.ColumnScaling.HelpText=
25.XhtmlOptions.ColumnScalingPercentLabel.HelpText=
26.XhtmlOptions.ColumnScalingPercentLabel.Label=%
27.XhtmlOptions.ConvertToPx.HelpText=
28.XhtmlOptions.ConvertToPx.Label=Convert units to px (pixels)
29.XhtmlOptions.OriginalImageSize.HelpText=
30.XhtmlOptions.OriginalImageSize.Label=\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0646\u062f\u0627\u0632\u0647 \u0627\u0635\u0644\u06cc \u0634\u06a9\u0644
31.XhtmlOptions.SpecialContentLabel.HelpText=
32.XhtmlOptions.SpecialContentLabel.Label=Special content
33.XhtmlOptions.Notes.HelpText=
34.XhtmlOptions.Notes.Label=\u0635\u0627\u062f\u0631 \u06a9\u0631\u062f\u0646 \u06cc\u0627\u062f\u0627\u0634\u062a\u200c\u0647\u0627
35.XhtmlOptions.UseDublinCore.HelpText=
36.XhtmlOptions.UseDublinCore.Label=Export document properties (Dublin Core Metadata)
37.XhtmlOptions.AutoCorrectLabel.HelpText=
38.XhtmlOptions.AutoCorrectLabel.Label=\u062a\u0635\u062d\u06cc\u062d \u062e\u0648\u062f\u06a9\u0627\u0631
39.XhtmlOptions.IgnoreHardLineBreaks.HelpText=
40.XhtmlOptions.IgnoreHardLineBreaks.Label=Ignore hard line breaks
41.XhtmlOptions.IgnoreEmptyParagraphs.HelpText=
42.XhtmlOptions.IgnoreEmptyParagraphs.Label=\u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646 \u067e\u0627\u0631\u0627\u06af\u0631\u0627\u0641\u0647\u0627\u06cc \u062e\u0627\u0644\u06cc
43.XhtmlOptions.IgnoreDoubleSpaces.HelpText=
44.XhtmlOptions.IgnoreDoubleSpaces.Label=\u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646 \u0641\u0627\u0635\u0644\u0647\u200c\u0647\u0627\u06cc \u0645\u062a\u0648\u0627\u0644\u06cc
45.XhtmlOptions.FilesLabel.HelpText=
46.XhtmlOptions.FilesLabel.Label=\u067e\u0631\u0648\u0646\u062f\u0647
47.XhtmlOptions.Split.HelpText=
48.XhtmlOptions.Split.Label=\u062a\u0642\u0633\u06cc\u0645 \u0645\u0633\u062a\u0646\u062f \u0628\u0631 \u0627\u0633\u0627\u0633 \u0633\u0631\u0627\u06cc\u0646\u062f
49.XhtmlOptions.SplitLevelLabel.HelpText=
50.XhtmlOptions.SplitLevelLabel.Label=\u0645\u0631\u062a\u0628\u0647 \u0633\u0631\u0627\u06cc\u0646\u062f
51.XhtmlOptions.SplitLevel.HelpText=
52.SplitLevel.StringItemList=1
53.SplitLevel.StringItemList=2
54.SplitLevel.StringItemList=3
55.SplitLevel.StringItemList=4
56.SplitLevel.StringItemList=5
57.SplitLevel.StringItemList=6
58.XhtmlOptions.RepeatLevelsLabel.HelpText=
59.XhtmlOptions.RepeatLevelsLabel.Label=\u062a\u06a9\u0631\u0627\u0631 \u0645\u0631\u062a\u0628\u0647 \u0633\u0631\u0627\u06cc\u0646\u062f
60.XhtmlOptions.RepeatLevels.HelpText=
61.RepeatLevels.StringItemList=0
62.RepeatLevels.StringItemList=1
63.RepeatLevels.StringItemList=2
64.RepeatLevels.StringItemList=3
65.RepeatLevels.StringItemList=4
66.RepeatLevels.StringItemList=5
67.XhtmlOptions.SaveImagesInSubdir.HelpText=
68.XhtmlOptions.SaveImagesInSubdir.Label=\u0630\u062e\u06cc\u0631\u0647 \u0634\u06a9\u0644\u0647\u0627 \u062f\u0631 \u06cc\u06a9 \u0632\u06cc\u0631\u067e\u0648\u0634\u0647
69.XhtmlOptions.XsltPathLabel.HelpText=
70.XhtmlOptions.XsltPathLabel.Label=\u0645\u0633\u06cc\u0631 XSLT
71.XhtmlOptions.XsltPath.HelpText=
72.XhtmlOptions.XsltPath.Text=
73.XhtmlOptions.ExportButton.HelpText=
74.XhtmlOptions.ExportButton.Label=\u0635\u0627\u062f\u0631 \u06a9\u0631\u062f\u0646
75.XhtmlOptions.CancelButton.HelpText=
76.XhtmlOptions.CancelButton.Label=\u0627\u0646\u0635\u0631\u0627\u0641
77.XhtmlOptionsCalc.HelpText=
78.XhtmlOptionsCalc.Title=\u062a\u0646\u0638\u06cc\u0645\u0627\u062a XHTML
79.XhtmlOptionsCalc.StyleLabel.HelpText=
80.XhtmlOptionsCalc.StyleLabel.Label=\u0642\u0627\u0644\u0628
81.XhtmlOptionsCalc.ConfigLabel.HelpText=
82.XhtmlOptionsCalc.ConfigLabel.Label=\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0642\u0627\u0644\u0628
83.XhtmlOptionsCalc.Config.HelpText=
86.XhtmlOptionsCalc.ScalingLabel.HelpText=
87.XhtmlOptionsCalc.ScalingLabel.Label=\u06a9\u0634\u06cc\u062f\u06af\u06cc
88.XhtmlOptionsCalc.Scaling.HelpText=
89.XhtmlOptionsCalc.ScalingPercentLabel.HelpText=
90.XhtmlOptionsCalc.ScalingPercentLabel.Label=\u066a
91.XhtmlOptionsCalc.ColumnScalingLabel.HelpText=
92.XhtmlOptionsCalc.ColumnScalingLabel.Label=\u06a9\u0634\u06cc\u062f\u06af\u06cc \u0633\u062a\u0648\u0646
93.XhtmlOptionsCalc.ColumnScaling.HelpText=
94.XhtmlOptionsCalc.ColumnScalingPercentLabel.HelpText=
95.XhtmlOptionsCalc.ColumnScalingPercentLabel.Label=%
96.XhtmlOptionsCalc.ConvertToPx.HelpText=
97.XhtmlOptionsCalc.ConvertToPx.Label=\u062a\u0628\u062f\u06cc\u0644 \u0648\u0627\u062d\u062f \u0628\u0647 \u067e\u06cc\u06a9\u0633\u0644
98.XhtmlOptionsCalc.OriginalImageSize.HelpText=
99.XhtmlOptionsCalc.OriginalImageSize.Label=\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0646\u062f\u0627\u0632\u0647 \u0627\u0635\u0644\u06cc \u0634\u06a9\u0644
100.XhtmlOptionsCalc.SpecialContentLabel.HelpText=
101.XhtmlOptionsCalc.SpecialContentLabel.Label=Special content
102.XhtmlOptionsCalc.Notes.HelpText=
103.XhtmlOptionsCalc.Notes.Label=\u0635\u0627\u062f\u0631 \u06a9\u0631\u062f\u0646 \u06cc\u0627\u062f\u0627\u0634\u062a\u200c\u0647\u0627
104.XhtmlOptionsCalc.UseDublinCore.HelpText=
105.XhtmlOptionsCalc.UseDublinCore.Label=\u0635\u0627\u062f\u0631 \u06a9\u0631\u062f\u0646 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0645\u0633\u062a\u0646\u062f
106.XhtmlOptionsCalc.SheetsLabel.HelpText=
107.XhtmlOptionsCalc.SheetsLabel.Label=Sheets
108.XhtmlOptionsCalc.DisplayHiddenSheets.HelpText=
109.XhtmlOptionsCalc.DisplayHiddenSheets.Label=Display hidden sheets
110.XhtmlOptionsCalc.DisplayHiddenRowsCols.HelpText=
111.XhtmlOptionsCalc.DisplayHiddenRowsCols.Label=\u0646\u0645\u0627\u06cc\u0634 \u0633\u0637\u0631 \u0648 \u0633\u062a\u0648\u0646\u0647\u0627\u06cc \u0645\u062e\u0641\u06cc
112.XhtmlOptionsCalc.DisplayFilteredRowsCols.HelpText=
113.XhtmlOptionsCalc.DisplayFilteredRowsCols.Label=\u0646\u0645\u0627\u06cc\u0634 \u067e\u0627\u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0633\u0637\u0631 \u0648 \u0633\u062a\u0648\u0646
114.XhtmlOptionsCalc.ApplyPrintRanges.HelpText=
115.XhtmlOptionsCalc.ApplyPrintRanges.Label=\u0627\u0639\u0645\u0627\u0644 \u0645\u062d\u062f\u0648\u062f\u0647 \u0686\u0627\u067e
116.XhtmlOptionsCalc.UseTitleAsHeading.HelpText=
117.XhtmlOptionsCalc.UseTitleAsHeading.Label=\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0639\u0646\u0648\u0627\u0646 \u0628\u0631\u0627\u06cc \u0633\u0631\u0627\u06cc\u0646\u062f
118.XhtmlOptionsCalc.UseSheetNamesAsHeadings.HelpText=
119.XhtmlOptionsCalc.UseSheetNamesAsHeadings.Label=\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u0627\u0645 \u0628\u0631\u0627\u06cc \u0633\u0631\u0627\u06cc\u0646\u062f
120.XhtmlOptionsCalc.FilesLabel.HelpText=
121.XhtmlOptionsCalc.FilesLabel.Label=\u067e\u0631\u0648\u0646\u062f\u0647\u200c\u0647\u0627
122.XhtmlOptionsCalc.CalcSplit.HelpText=
123.XhtmlOptionsCalc.CalcSplit.Label=Save sheets in separate files
124.XhtmlOptionsCalc.SaveImagesInSubdir.HelpText=
125.XhtmlOptionsCalc.SaveImagesInSubdir.Label=\u0630\u062e\u06cc\u0631\u0647 \u0634\u06a9\u0644\u0647\u0627 \u062f\u0631 \u06cc\u06a9 \u0632\u06cc\u0631\u067e\u0648\u0634\u0647
126.XhtmlOptionsCalc.ExportButton.HelpText=
127.XhtmlOptionsCalc.ExportButton.Label=\u0635\u0627\u062f\u0631\u06a9\u0631\u062f\u0646
128.XhtmlOptionsCalc.CancelButton.HelpText=
129.XhtmlOptionsCalc.CancelButton.Label=\u0627\u0646\u0635\u0631\u0627\u0641
130.Config.StringItemList=\u0642\u0627\u0644\u0628 \u0628\u0646\u062f\u06cc \u0627\u0635\u0644\u06cc
131.Config.StringItemList=Chocolate
132.Config.StringItemList=Midnight
133.Config.StringItemList=Modernist
134.Config.StringItemList=Oldstyle
135.Config.StringItemList=Steely
136.Config.StringItemList=Swiss
137.Config.StringItemList=Traditional
138.Config.StringItemList=Ultramarine
139.Config.StringItemList=\u062f\u0644\u062e\u0648\u0627\u0647
140.Config.StringItemList=\u0642\u0627\u0644\u0628 \u0628\u0646\u062f\u06cc \u0627\u0635\u0644\u06cc
141.Config.StringItemList=\u062f\u0644\u062e\u0648\u0627\u0647

View file

@ -0,0 +1 @@
Writer2xhtml provides Writer and Calc export filters for XHTML and XHTML+MathML

View file

@ -5,7 +5,7 @@
<identifier value="org.openoffice.da.writer2xhtml.oxt" /> <identifier value="org.openoffice.da.writer2xhtml.oxt" />
<version value="1.1.7" /> <version value="1.1.8" />
<dependencies> <dependencies>
<OpenOffice.org-minimal-version value="3.0" d:name="OpenOffice.org 3.0"/> <OpenOffice.org-minimal-version value="3.0" d:name="OpenOffice.org 3.0"/>
@ -32,6 +32,7 @@
<name lang="ru">Фильтры экспорта Writer2xhtml</name> <name lang="ru">Фильтры экспорта Writer2xhtml</name>
<name lang="uk">Фільтри експорту Writer2xhtml</name> <name lang="uk">Фільтри експорту Writer2xhtml</name>
<name lang="tr">Writer2LaTeX ihraç etme filitreleri</name> <name lang="tr">Writer2LaTeX ihraç etme filitreleri</name>
<name lang="fa">Writer2xhtml export filters</name>
</display-name> </display-name>
<icon> <icon>

View file

@ -4,7 +4,7 @@
xmlns:xlink="http://www.w3.org/1999/xlink"> xmlns:xlink="http://www.w3.org/1999/xlink">
<identifier value="org.openoffice.da.writer4latex.oxt" /> <identifier value="org.openoffice.da.writer4latex.oxt" />
<version value="1.1.7" /> <version value="1.1.8" />
<dependencies> <dependencies>
<OpenOffice.org-minimal-version value="3.0" d:name="OpenOffice.org 3.0"/> <OpenOffice.org-minimal-version value="3.0" d:name="OpenOffice.org 3.0"/>
</dependencies> </dependencies>

View file

@ -2,5 +2,5 @@
<description xmlns="http://openoffice.org/extensions/description/2006" <description xmlns="http://openoffice.org/extensions/description/2006"
xmlns:d="http://openoffice.org/extensions/description/2006"> xmlns:d="http://openoffice.org/extensions/description/2006">
<identifier value="org.openoffice.da.writer2latex.xhtml-config-sample.oxt" /> <identifier value="org.openoffice.da.writer2latex.xhtml-config-sample.oxt" />
<version value="1.1.7" /> <version value="1.1.8" />
</description> </description>

View file

@ -1,4 +1,4 @@
Writer2LaTeX source version 1.1.7 Writer2LaTeX source version 1.1.8
================================= =================================
Writer2LaTeX is (c) 2002-2011 by Henrik Just. Writer2LaTeX is (c) 2002-2011 by Henrik Just.
@ -95,7 +95,7 @@ In addition to oxt, the build file supports the following targets:
clean clean
Henrik Just, April 2011 Henrik Just, May 2011
Thanks to Michael Niedermair for writing the original ant build file Thanks to Michael Niedermair for writing the original ant build file