This file is only useful for the contributors. Users should ignore it, as it does not constitute a formal roadmap for the project.
[PT/PB/PTF]
- Change Translations Source File (TSF) based on Jérôme's feedback.
- Rename arguments
key
andsource_key
tolang
andsource_lang
.- This has consequences on scripts
from-tsf.R
, andtsf.R
. - This also has consequences on related test scripts.
- This has consequences on scripts
- Simpliy header and change overall structure.
- Integrate class
Translator
intofrom_tsf()
. - Revisit
split_tsf()
,from_tsf_header()
, andfrom_tsf_header_v1()
. - Revamp
from_tsf_block_v1()
, and lower-level mechanisms. It can be simplified using latest work. - Verify whether we could avoid tokenizing TSFs and get rid of
tokenize_tsf_block_v1()
. - Change names.
- Rename TSF to Portable Translator File (PTF).
- A PTF represents a Portable Translator (PT).
- Rename source blocks to Portable Blocks (PB).
- Rename
read_translations()
andwrite_translations()
toimport_translator()
, andexport_translator()
.
- Rename TSF to Portable Translator File (PTF).
- Update user-level documentation on TSFs following all changes.
- Rename arguments
- Implement
to_ptf()
.- Write documentation and tests for it.
- Write required lower-level functions
write_translations()
, andwrite_text()
.- Write documentation and tests for it.
[Documentation]
- Write package-level documentation (
R/transltr-package.R
). - Run
R CMD check
. - Update architecture diagram.
- Write small introduction to package in package documentation.
- Final update of side-files:
DESCRIPTION
,.Rbuildignore
,COVERAGE
,NAMESPACE
,STATISTICS
, andNEWS
.- This should be very minor changes, mostly just a final check.
- Complete top-level
README
.
[update_translations()]
- Implement this function that updates existing PTF.
- Implement interactive function
compare_translations()
, and related functionsupdate_show()
,update_accept()
, andupdate_reject()
.
[text_normalize()]
- Revamp current implementation of
text_normalize()
.- Make it less reliant on
gsub()
. - Evaluate whether it should be done in C for maximum efficiency.
- Users should be able to pass runtime values (use
<placeholder>
in strings).- Example:
text_normalize("I ate", n, "bananas.") -> "I ate <placeholder:n> bananas."
- Example:
- Users should be able to indicate text to be left as is.
- Example:
text_normalize("{{I ate\n\n}}", "bananas.") -> "I ate\n\n bananas."
- Example:
- Make it less reliant on
[Scopes]
- Integrate scopes into
find_source()
, and classBlock
. - Revisit
translator_scope()
.- I think the call stack can be traversed more efficiently by looping on enclosures of evaluation frames.
[Cache]
- Explore the idea of replacing
.__translators_cache__
by a singleton instance ofTranslatorsCache
R6 class. Its interface would have two methods:set()
, andget()
, and bindings would be defined inprivate
.- It would be instantiated once in a
zzz.R
script. - It would be opaque to users, just like the current implementation.
- It would be instantiated once in a
[Documentation]
- Review older documentation for consistency.
- Write introductory vignette.
- Build dedicated website with
pkgdown
.
[Miscellaneous]
- Revisit whether arg
which
ofstr_strip_empty()
is required. format_vector()
needs to (better) accomodate vectors of length 1.