3 %bcond_with apidocs # do not package API docs
4 %bcond_with doc # do not package user docs
6 Summary: Tools to assist with translation and software localization
7 Name: translate-toolkit
11 Group: Development/Tools
12 Source0: https://github.com/translate/translate/releases/download/%{version}/%{name}-%{version}.tar.gz
13 # Source0-md5: 4ff21c47bf16e0855b913246ae397a58
14 Patch0: %{name}-stoplist.patch
15 Patch1: %{name}-langmodel_dir.patch
17 URL: http://toolkit.translatehouse.org/
18 BuildRequires: checkbashisms
19 BuildRequires: python-dateutil
20 BuildRequires: python-modules
21 BuildRequires: rpm-pythonprov
22 BuildRequires: rpmbuild(macros) >= 1.714
23 BuildRequires: sed >= 4.0
25 BuildRequires: python-lxml
26 BuildRequires: python-simplejson
27 BuildRequires: python-vobject
29 Requires: python-iniparse >= 0.3.1
30 Requires: python-lxml >= 2.1.0
31 Requires: python-modules >= 1:2.7
32 Requires: python-setuptools
33 Requires: python-simplejson
34 Requires: python-vobject >= 0.6.6
36 Requires: python-psyco
39 Suggests: python-Levenshtein >= 0.10.2
40 Suggests: python-pyenchant
42 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
45 A set of tools for managing translation and software localization via
46 Gettext PO or XLIFF format files.
49 - Convertors: convert from various formats to PO or XLIFF
51 - Core localization formats - XLIFF and Gettext PO
52 - Other localization formats - TMX, TBX, Qt Linguist (.ts), Java
53 .properties, Wordfast TM, OmegaT glossary
54 - Compiled formats: Gettext MO, Qt .qm
55 - Other formats - OpenDocument Format (ODF), text, HTML, CSV, INI,
56 wiki (MediaWiki, DokuWiki), iCal
57 - Specialised - OpenOffice.org GSI/SDF, PHP, Mozilla (.dtd,
58 .properties, etc), Symbian, Innosetup, tikiwiki, subtitles
59 - Tools: count, search, debug, segment and pretranslate localization
60 files. Extract terminology. Pseudo-localize
61 - Checkers: validate translations with over 45 checks
64 Summary: Development API for translate-toolkit applications
68 Translate Toolkit API documentation for developers wishing to build
69 new tools for the toolkit or to use the libraries in other
73 Summary: User Manual for translate-toolkit
77 Documentation for translate-toolkit.
85 # FIXME: they do it wrong apparently? that can't do via setup.py?
86 %{__sed} -i -e 's#packagesdir = get_python_lib()#packagesdir = "%{py_sitescriptdir}"#' setup.py
89 checkbashisms $(grep -rl '#!/bin/sh' tools)
93 rm -r docs/_build/html/_sources
98 for script in build-2/scripts-%{py_ver}/*; do
101 # exclude some known failures
121 LC_ALL=C PYTHONPATH=. $script --manpage > man/$program.1
122 # if this grep fails, you should exclude it above
123 grep 'Autogenerated manpage' man/$program.1
128 rm -rf $RPM_BUILD_ROOT
133 install -d $RPM_BUILD_ROOT%{_mandir}/man1
134 cp -a man/* $RPM_BUILD_ROOT%{_mandir}/man1
137 # remove documentation files from site-packages
138 %{__rm} -r $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/docs
139 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/{COPYING,README.rst}
141 # Move data files to %{_datadir}
142 install -d $RPM_BUILD_ROOT%{_datadir}/%{name}
143 mv $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/share/* $RPM_BUILD_ROOT%{_datadir}/%{name}
145 # we don't package tests
146 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/tools/test_*.py*
147 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/convert/test_*.py*
148 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/filters/test_*.py*
149 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/lang/test_*.py*
150 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/misc/test_*.py*
151 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/search/indexing/test_*.py*
152 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/search/test_*.py*
153 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/storage/placeables/test_*.py*
154 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/storage/test_*.py*
155 %{__rm} $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/storage/xml_extract/test_*.py*
158 echo "%dir %{py_sitescriptdir}/translate/lang" > %{name}.lang
159 for a in $RPM_BUILD_ROOT%{py_sitescriptdir}/translate/lang/*.py[co]; do
161 p=${a#$RPM_BUILD_ROOT} f=${a##*/} l=${f%.py*}
163 code_or|common|data|factory|identify|__init__|ngram|poedit)
164 echo $p >> %{name}.lang
167 echo "%lang($l) $p" >> %{name}.lang
173 rm -rf $RPM_BUILD_ROOT
175 %files -f %{name}.lang
176 %defattr(644,root,root,755)
178 %attr(755,root,root) %{_bindir}/build_firefox.sh
179 %attr(755,root,root) %{_bindir}/build_tmdb
180 %attr(755,root,root) %{_bindir}/buildxpi.py
181 %attr(755,root,root) %{_bindir}/csv2po
182 %attr(755,root,root) %{_bindir}/csv2tbx
183 %attr(755,root,root) %{_bindir}/get_moz_enUS.py
184 %attr(755,root,root) %{_bindir}/html2po
185 %attr(755,root,root) %{_bindir}/ical2po
186 %attr(755,root,root) %{_bindir}/idml2po
187 %attr(755,root,root) %{_bindir}/ini2po
188 %attr(755,root,root) %{_bindir}/json2po
189 %attr(755,root,root) %{_bindir}/junitmsgfmt
190 %attr(755,root,root) %{_bindir}/l20n2po
191 %attr(755,root,root) %{_bindir}/moz2po
192 %attr(755,root,root) %{_bindir}/mozlang2po
193 %attr(755,root,root) %{_bindir}/odf2xliff
194 %attr(755,root,root) %{_bindir}/oo2po
195 %attr(755,root,root) %{_bindir}/oo2xliff
196 %attr(755,root,root) %{_bindir}/php2po
197 %attr(755,root,root) %{_bindir}/phppo2pypo
198 %attr(755,root,root) %{_bindir}/po2csv
199 %attr(755,root,root) %{_bindir}/po2html
200 %attr(755,root,root) %{_bindir}/po2ical
201 %attr(755,root,root) %{_bindir}/po2idml
202 %attr(755,root,root) %{_bindir}/po2ini
203 %attr(755,root,root) %{_bindir}/po2json
204 %attr(755,root,root) %{_bindir}/po2l20n
205 %attr(755,root,root) %{_bindir}/po2moz
206 %attr(755,root,root) %{_bindir}/po2mozlang
207 %attr(755,root,root) %{_bindir}/po2oo
208 %attr(755,root,root) %{_bindir}/po2php
209 %attr(755,root,root) %{_bindir}/po2prop
210 %attr(755,root,root) %{_bindir}/po2rc
211 %attr(755,root,root) %{_bindir}/po2resx
212 %attr(755,root,root) %{_bindir}/po2sub
213 %attr(755,root,root) %{_bindir}/po2symb
214 %attr(755,root,root) %{_bindir}/po2tiki
215 %attr(755,root,root) %{_bindir}/po2tmx
216 %attr(755,root,root) %{_bindir}/po2ts
217 %attr(755,root,root) %{_bindir}/po2txt
218 %attr(755,root,root) %{_bindir}/po2web2py
219 %attr(755,root,root) %{_bindir}/po2wordfast
220 %attr(755,root,root) %{_bindir}/po2xliff
221 %attr(755,root,root) %{_bindir}/poclean
222 %attr(755,root,root) %{_bindir}/pocommentclean
223 %attr(755,root,root) %{_bindir}/pocompendium
224 %attr(755,root,root) %{_bindir}/pocompile
225 %attr(755,root,root) %{_bindir}/poconflicts
226 %attr(755,root,root) %{_bindir}/pocount
227 %attr(755,root,root) %{_bindir}/podebug
228 %attr(755,root,root) %{_bindir}/pofilter
229 %attr(755,root,root) %{_bindir}/pogrep
230 %attr(755,root,root) %{_bindir}/pomerge
231 %attr(755,root,root) %{_bindir}/pomigrate2
232 %attr(755,root,root) %{_bindir}/popuretext
233 %attr(755,root,root) %{_bindir}/poreencode
234 %attr(755,root,root) %{_bindir}/porestructure
235 %attr(755,root,root) %{_bindir}/posegment
236 %attr(755,root,root) %{_bindir}/posplit
237 %attr(755,root,root) %{_bindir}/poswap
238 %attr(755,root,root) %{_bindir}/pot2po
239 %attr(755,root,root) %{_bindir}/poterminology
240 %attr(755,root,root) %{_bindir}/pretranslate
241 %attr(755,root,root) %{_bindir}/prop2po
242 %attr(755,root,root) %{_bindir}/pydiff
243 %attr(755,root,root) %{_bindir}/pypo2phppo
244 %attr(755,root,root) %{_bindir}/rc2po
245 %attr(755,root,root) %{_bindir}/resx2po
246 %attr(755,root,root) %{_bindir}/sub2po
247 %attr(755,root,root) %{_bindir}/symb2po
248 %attr(755,root,root) %{_bindir}/tbx2po
249 %attr(755,root,root) %{_bindir}/tiki2po
250 %attr(755,root,root) %{_bindir}/tmserver
251 %attr(755,root,root) %{_bindir}/ts2po
252 %attr(755,root,root) %{_bindir}/txt2po
253 %attr(755,root,root) %{_bindir}/web2py2po
254 %attr(755,root,root) %{_bindir}/xliff2odf
255 %attr(755,root,root) %{_bindir}/xliff2oo
256 %attr(755,root,root) %{_bindir}/xliff2po
258 %{_mandir}/man1/csv2po.1*
259 %{_mandir}/man1/csv2tbx.1*
260 %{_mandir}/man1/html2po.1*
261 %{_mandir}/man1/ical2po.1*
262 %{_mandir}/man1/ini2po.1*
263 %{_mandir}/man1/json2po.1*
264 %{_mandir}/man1/moz2po.1*
265 %{_mandir}/man1/odf2xliff.1*
266 %{_mandir}/man1/oo2po.1*
267 %{_mandir}/man1/oo2xliff.1*
268 %{_mandir}/man1/php2po.1*
269 %{_mandir}/man1/po2csv.1*
270 %{_mandir}/man1/po2html.1*
271 %{_mandir}/man1/po2ical.1*
272 %{_mandir}/man1/po2ini.1*
273 %{_mandir}/man1/po2json.1*
274 %{_mandir}/man1/po2moz.1*
275 %{_mandir}/man1/po2oo.1*
276 %{_mandir}/man1/po2php.1*
277 %{_mandir}/man1/po2prop.1*
278 %{_mandir}/man1/po2rc.1*
279 %{_mandir}/man1/po2resx.1*
280 %{_mandir}/man1/po2sub.1*
281 %{_mandir}/man1/po2symb.1*
282 %{_mandir}/man1/po2tiki.1*
283 %{_mandir}/man1/po2tmx.1*
284 %{_mandir}/man1/po2ts.1*
285 %{_mandir}/man1/po2txt.1*
286 %{_mandir}/man1/po2web2py.1*
287 %{_mandir}/man1/po2wordfast.1*
288 %{_mandir}/man1/po2xliff.1*
289 %{_mandir}/man1/poclean.1*
290 %{_mandir}/man1/pocompile.1*
291 %{_mandir}/man1/poconflicts.1*
292 %{_mandir}/man1/podebug.1*
293 %{_mandir}/man1/pofilter.1*
294 %{_mandir}/man1/pogrep.1*
295 %{_mandir}/man1/pomerge.1*
296 %{_mandir}/man1/porestructure.1*
297 %{_mandir}/man1/posegment.1*
298 %{_mandir}/man1/poswap.1*
299 %{_mandir}/man1/pot2po.1*
300 %{_mandir}/man1/poterminology.1*
301 %{_mandir}/man1/pretranslate.1*
302 %{_mandir}/man1/prop2po.1*
303 %{_mandir}/man1/rc2po.1*
304 %{_mandir}/man1/resx2po.1*
305 %{_mandir}/man1/sub2po.1*
306 %{_mandir}/man1/symb2po.1*
307 %{_mandir}/man1/tiki2po.1*
308 %{_mandir}/man1/ts2po.1*
309 %{_mandir}/man1/txt2po.1*
310 %{_mandir}/man1/web2py2po.1*
311 %{_mandir}/man1/xliff2odf.1*
312 %{_mandir}/man1/xliff2oo.1*
313 %{_mandir}/man1/xliff2po.1*
316 %dir %{_datadir}/%{name}
317 %dir %{_datadir}/%{name}/langmodels
318 %{_datadir}/%{name}/langmodels/README
319 %{_datadir}/%{name}/stoplist-en
320 %{_datadir}/%{name}/langmodels/fpdb.conf
322 %lang(af) %{_datadir}/%{name}/langmodels/afrikaans.lm
323 %lang(ar) %{_datadir}/%{name}/langmodels/arabic.lm
324 %lang(be) %{_datadir}/%{name}/langmodels/belarus.lm
325 %lang(br) %{_datadir}/%{name}/langmodels/breton.lm
326 %lang(bs) %{_datadir}/%{name}/langmodels/bosnian.lm
327 %lang(ca) %{_datadir}/%{name}/langmodels/catalan.lm
328 %lang(cy) %{_datadir}/%{name}/langmodels/welsh.lm
329 %lang(cz) %{_datadir}/%{name}/langmodels/czech.lm
330 %lang(da) %{_datadir}/%{name}/langmodels/danish.lm
331 %lang(de) %{_datadir}/%{name}/langmodels/german.lm
332 %lang(el) %{_datadir}/%{name}/langmodels/greek.lm
333 %lang(en) %{_datadir}/%{name}/langmodels/english.lm
334 %lang(eo) %{_datadir}/%{name}/langmodels/esperanto.lm
335 %lang(es) %{_datadir}/%{name}/langmodels/spanish.lm
336 %lang(et) %{_datadir}/%{name}/langmodels/estonian.lm
337 %lang(eu) %{_datadir}/%{name}/langmodels/basque.lm
338 %lang(fi) %{_datadir}/%{name}/langmodels/finnish.lm
339 %lang(fr) %{_datadir}/%{name}/langmodels/french.lm
340 %lang(fy) %{_datadir}/%{name}/langmodels/frisian.lm
341 %lang(ga) %{_datadir}/%{name}/langmodels/irish_gaelic.lm
342 %lang(gd) %{_datadir}/%{name}/langmodels/scots.lm
343 %lang(gd) %{_datadir}/%{name}/langmodels/scots_gaelic.lm
344 %lang(gv) %{_datadir}/%{name}/langmodels/manx_gaelic.lm
345 %lang(he) %{_datadir}/%{name}/langmodels/hebrew.lm
346 %lang(hr) %{_datadir}/%{name}/langmodels/croatian.lm
347 %lang(hu) %{_datadir}/%{name}/langmodels/hungarian.lm
348 %lang(id) %{_datadir}/%{name}/langmodels/indonesian.lm
349 %lang(is) %{_datadir}/%{name}/langmodels/icelandic.lm
350 %lang(it) %{_datadir}/%{name}/langmodels/italian.lm
351 %lang(ja) %{_datadir}/%{name}/langmodels/japanese.lm
352 %lang(lt) %{_datadir}/%{name}/langmodels/lithuanian.lm
353 %lang(lv) %{_datadir}/%{name}/langmodels/latvian.lm
354 %lang(ms) %{_datadir}/%{name}/langmodels/malay.lm
355 %lang(nd) %{_datadir}/%{name}/langmodels/Ndebele.lm
356 %lang(nl) %{_datadir}/%{name}/langmodels/dutch.lm
357 %lang(no) %{_datadir}/%{name}/langmodels/norwegian.lm
358 %lang(po) %{_datadir}/%{name}/langmodels/polish.lm
359 %lang(pt) %{_datadir}/%{name}/langmodels/portuguese.lm
360 %lang(qu) %{_datadir}/%{name}/langmodels/quechua.lm
361 %lang(rm) %{_datadir}/%{name}/langmodels/romansh.lm
362 %lang(ro) %{_datadir}/%{name}/langmodels/romanian.lm
363 %lang(ru) %{_datadir}/%{name}/langmodels/russian.lm
364 %lang(sk) %{_datadir}/%{name}/langmodels/slovenian.lm
365 %lang(sk@latin) %{_datadir}/%{name}/langmodels/slovak_ascii.lm
366 %lang(sq) %{_datadir}/%{name}/langmodels/albanian.lm
367 %lang(sr) %{_datadir}/%{name}/langmodels/latin.lm
368 %lang(sr@latin) %{_datadir}/%{name}/langmodels/serbian_ascii.lm
369 %lang(ss) %{_datadir}/%{name}/langmodels/Swati.lm
370 %lang(st) %{_datadir}/%{name}/langmodels/NorthernSotho.lm
371 %lang(st) %{_datadir}/%{name}/langmodels/Sotho.lm
372 %lang(sv) %{_datadir}/%{name}/langmodels/swedish.lm
373 %lang(sw) %{_datadir}/%{name}/langmodels/swahili.lm
374 %lang(tl) %{_datadir}/%{name}/langmodels/tagalog.lm
375 %lang(tn) %{_datadir}/%{name}/langmodels/Tswana.lm
376 %lang(tr) %{_datadir}/%{name}/langmodels/turkish.lm
377 %lang(ts) %{_datadir}/%{name}/langmodels/Tsonga.lm
378 %lang(uk) %{_datadir}/%{name}/langmodels/ukrainian.lm
379 %lang(ve) %{_datadir}/%{name}/langmodels/Venda.lm
380 %lang(vi) %{_datadir}/%{name}/langmodels/vietnamese.lm
381 %lang(xh) %{_datadir}/%{name}/langmodels/Xhosa.lm
382 %lang(zh_CN) %{_datadir}/%{name}/langmodels/chinese_simplified.lm
383 %lang(zh_TW) %{_datadir}/%{name}/langmodels/chinese_traditional.lm
384 %lang(zu) %{_datadir}/%{name}/langmodels/Zulu.lm
386 %dir %{py_sitescriptdir}/translate
387 %{py_sitescriptdir}/translate/*.py[co]
388 %{py_sitescriptdir}/translate/convert
389 %{py_sitescriptdir}/translate/filters
390 %{py_sitescriptdir}/translate/misc
391 %{py_sitescriptdir}/translate/search
392 %{py_sitescriptdir}/translate/services
393 %{py_sitescriptdir}/translate/storage
394 %{py_sitescriptdir}/translate/tools
395 %{py_sitescriptdir}/translate_toolkit-*.egg-info
399 %defattr(644,root,root,755)
400 %doc docs/_build/html/*
405 %defattr(644,root,root,755)
406 %doc translate/doc/api/*