https://github.com/travisgk/py-long-s
This Python tool accurately inserts the historical long S character ( ſ ) back into the given text to make it appear as if it were written before the 20th century. English, French, German, Spanish and Italian are supported.
https://github.com/travisgk/py-long-s
alphabet converter deutsch digital-humanities docx english french german historical historical-linguistics history italian latin-alphabet linguistics odf orthography spanish spelling text-processing typography
Last synced: 5 months ago
JSON representation
This Python tool accurately inserts the historical long S character ( ſ ) back into the given text to make it appear as if it were written before the 20th century. English, French, German, Spanish and Italian are supported.
- Host: GitHub
- URL: https://github.com/travisgk/py-long-s
- Owner: travisgk
- License: mit
- Created: 2024-06-28T20:15:07.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-29T16:18:19.000Z (over 1 year ago)
- Last Synced: 2025-10-31T10:57:07.913Z (8 months ago)
- Topics: alphabet, converter, deutsch, digital-humanities, docx, english, french, german, historical, historical-linguistics, history, italian, latin-alphabet, linguistics, odf, orthography, spanish, spelling, text-processing, typography
- Language: Python
- Homepage:
- Size: 343 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# py-long-s
This Python tool accurately inserts the historical long S character ( ſ ) back into the given text to make it appear as if it were written before the 20th century.
English, French, German, Spanish, and Italian are supported.
#### Installation
```
pip install long-s
```
The libraries used in this project can be installed separately by using:
```
pip install numpy python-docx odfpy unidecode
```
## Online Converter
There's also a [JavaScript version](https://github.com/travisgk/long-s-converter) available that can be used online.
## Example
```
import long_s
print(long_s.convert("The discussion was surprisingly insightful.", lang="en"))
print(long_s.convert("La discussion était étonnamment perspicace.", lang="fr"))
print(long_s.convert("Die Diskussion war überraschend aufschlussreich.", lang="de"))
print(long_s.convert("La discusión fue sorprendentemente perspicaz.", lang="es"))
print(long_s.convert("La discussione è stata sorprendentemente perspicace.", lang="it"))
```
```
The diſcuſſion was ſurpriſingly inſightful.
La diſcuſſion était étonnamment perſpicace.
Die Diskuſſion war überraſchend aufſchluſsreich.
La diſcuſión fue ſorprendentemente perſpicaz.
La diſcuſſione è ſtata ſorprendentemente perſpicace.
```
## Converting Files
### .txt files
```
long_s.convert_text_file(src_path="story.txt", dst_path=None, lang="en"))
```
Since `dst_path` is None, the program will save the converted text file as `story-long-s.txt`.
### .odf files
```
long_s.convert_odf_file(src_path="story.odt", dst_path="old-story.odt", lang="en"))
```
### .docx files
```
long_s.convert_docx_file(src_path="märschen.docx", lang="de"))
```
## Special Thanks
Thank you Andrew West of the TeX Users Group for the documentation found under [The Rules for Long S](https://www.tug.org/TUGboat/tb32-1/tb100west.pdf), which was fundamental in writing the conversion functions for English, French, Spanish, and Italian.