Skip to content

Commit

Permalink
Added multi language support, added Hindi and Korean as additional la…
Browse files Browse the repository at this point in the history
…nguages, continued refactoring the renderer components, slightly changed visuals of search bar
  • Loading branch information
ransome1 committed Sep 26, 2023
1 parent 6c088aa commit 7798e2d
Show file tree
Hide file tree
Showing 76 changed files with 2,569 additions and 1,295 deletions.
91 changes: 13 additions & 78 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,18 @@
[![Code scan and test cases](https://github.com/ransome1/sleek/actions/workflows/code-scan.yml/badge.svg?branch=develop)](https://github.com/ransome1/sleek/actions/workflows/code-scan.yml)
[![sleek](https://snapcraft.io/sleek/badge.svg)](https://snapcraft.io/sleek)

## ❤️ Become a contributer.
[sleek is currently being rewritten.](https://github.com/ransome1/sleek/discussions/501) Now is a good time to join us in our mission to provide a user-friendly, free, and open-source todo.txt client. We're actively inviting passionate contributors skilled in `React`, `TypeScript`, `Electron`, and `Jest/Playwright` to join our collaborative effort. The `develop` branch reflects the most recent progress. Here you'll find our roadmap: https://github.com/users/ransome1/projects/3.
## ❤️ Become a contributer
[sleek is currently being rewritten.](https://github.com/ransome1/sleek/discussions/501) Now is a good time to join us in our mission to provide a user-friendly, free, and open-source todo.txt client. We're actively inviting passionate contributors skilled in `React`, `TypeScript`, `Electron`, and `Jest/Playwright` to join our collaborative effort. The `develop` branch reflects the most recent progress. Here you'll find our roadmap: https://github.com/users/ransome1/projects/3. For those interested, [we've updated our contribution guidelines](https://github.com/ransome1/sleek/wiki/Contributing-Guidelines).

For those interested, we've updated our contribution guidelines, which you can find here: https://github.com/ransome1/sleek/blob/master/CONTRIBUTING.md.

## sleek is an open-source (FOSS) todo manager based on the todo.txt syntax. It's available for Windows, MacOS and Linux
## sleek is an open-source (FOSS) todo manager based on the todo.txt syntax. It's available for Windows, macOS and Linux
sleek is an open-source (FOSS) todo manager based on the todo.txt syntax. Stripped down to only the most necessary features, and with a clean and simple interface, sleek aims to help you focus on getting things done.

All classic todo.txt attributes are supported and enhanced by additional features. Creating todos is straightforward, and tag-based filtering in tandem with highly customisable grouping and smart full-text search allows for rapid information retrieval. Completed todos can be hidden or archived into separate done.txt files. Easy integration with other todo.txt apps is facilitated by continuously scanning todo.txt files for changes.

sleek is available for Windows, MacOS and Linux, and in several languages. For a detailed list of features, see below. Useful information can be found in <a href="https://github.com/ransome1/sleek/wiki">sleek's wiki</a>.

+ [Sponsor sleek](#sponsor-sleek)
+ [Get sleek from Apple Mac App Store](#get-sleek-from-apple-mac-app-store)
+ [Get sleek from Microsoft Store](#get-sleek-from-microsoft-store)
+ [Get sleek from Snap Store](#get-sleek-from-snap-store)
+ [Get sleek from Flathub](#get-sleek-from-flathub)
+ [Get sleek from Homebrew](#get-sleek-from-homebrew)
+ [Get sleek from Arch User Repository](#get-sleek-from-arch-user-repository)
+ [Download sleek](#download-sleek)
+ [Build sleek from source code](#build-sleek-from-source-code)
+ [sleek's features](#sleeks-features)
sleek is available for Windows, macOS and Linux, and in several languages. https://github.com/ransome1/sleek/wiki/Features.

### Sponsor sleek
Pushing sleek to the Apple and Microsoft app stores creates annual costs. You can help covering these by <a href="https://github.com/sponsors/ransome1">sponsoring the project</a>.
Pushing sleek to the Apple and Microsoft app stores creates annual costs. You can help covering these by [sponsoring the project](https://github.com/sponsors/ransome1).

### Get sleek from Apple Mac App Store
<a href="https://apps.apple.com/us/app/sleek-todo-manager/id1614704209" target="blank"><img src='assets/store_badges/Download_on_the_Mac_App_Store.png' alt='Get sleek from Apple Mac App Store' width='180'/></a>
Expand All @@ -37,77 +24,25 @@ Pushing sleek to the Apple and Microsoft app stores creates annual costs. You ca
### Get sleek from Snap Store
[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/sleek)

Install sleek from <a href="https://snapcraft.io/sleek" target="blank">Snap Store</a> using: `sudo snap install sleek`
Install sleek from [Snap Store](https://snapcraft.io/sleek) using: `sudo snap install sleek`

### Get sleek from Flathub
<a href="https://flathub.org/apps/details/com.github.ransome1.sleek" target="blank"><img width='180' alt="Download on Flathub" src="https://flathub.org/assets/badges/flathub-badge-en.png"/></a>

Install sleek from <a href="https://flathub.org/apps/details/com.github.ransome1.sleek" target="blank">Flathub</a> using: `flatpak install flathub com.github.ransome1.sleek`
Install sleek from [Flathub](https://flathub.org/apps/details/com.github.ransome1.sleek) using: `flatpak install flathub com.github.ransome1.sleek`

Run it using: `flatpak run com.github.ransome1.sleek`

### Get sleek from Homebrew
Install sleek from <a href="https://formulae.brew.sh/cask/sleek" target="blank">Homebrew</a>.
Install sleek from [Homebrew](https://formulae.brew.sh/cask/sleek).
`brew install --cask sleek`

### Get sleek from Arch User Repository
Install sleek from <a href="https://aur.archlinux.org/packages/sleek/" target="blank">AUR</a>.
1. Setup <a href="https://github.com/Jguer/yay#installation" target="blank">Yay</a>
Install sleek from [AUR](https://aur.archlinux.org/packages/sleek/).
1. Setup [Yay](https://github.com/Jguer/yay#installation)
2. `yay -S sleek`

### Download sleek
You can download sleek for Windows, MacOS and Linux from
- <a href="https://sourceforge.net/p/sleek/" target="blank">SourceForge</a>
- <a href="https://github.com/ransome1/sleek/releases/latest">Github</a>

### Build sleek from source code
1. Setup <a href="https://docs.github.com/en/github/getting-started-with-github/set-up-git" target="blank">Git</a> and <a href="https://nodejs.org/" target="blank">node.js</a>.
2. Clone sleek `git clone https://github.com/ransome1/sleek.git` and cd into sleek's directory
3. Install dependencies `npm install`
4. Build and package sleek `npm run package`
5. The binaries will be placed in the working directory, in a subfolder named `release/build`

### sleek's features
* Uses existing todo.txt files or creates new ones
* Add and search for todos by
- priority
- context
- project
- due date
- creation date
- completion date
- recurrence (repeating todo)
- threshold dates
- pomodoro timer
* Filter, sort, and group todos by all available attributes
* Invert the sorting of each group
* Find todos using full-text search compatible with todo.txt syntax
* Inline autocomplete available for adding contexts and projects
* Dates and priorities can be selected by built-in picker elements
* Navigable via keyboard shortcuts
* Tabindex available
* Due date notifications
* Toggle between dark and light mode
* Compact view and zoom available
* Completed todos can be shown, hidden, and archived
* Multiline todos can be created
* Filters are sorted alphanummerically
* Hyperlinks detected automatically
* File watcher scans todo.txt files for changes
* Simultaneously manage multiple todo.txt files
* Language options
- English
- German
- Italian
- Spanish
- French
- Simplified Chinese
- Brazilian Portugese
- Japanese
- Turkish
- Hungarian
- Czech
- Polish
- Russian

A more detailed documentation can be found in <a href="https://github.com/ransome1/sleek/wiki/">sleek's wiki</a>.
You can download sleek for Windows, macOS and Linux from
- [SourceForge](https://sourceforge.net/p/sleek/)
- [GitHub](https://github.com/ransome1/sleek/releases/latest)
61 changes: 61 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@
"electron-log": "^4.4.8",
"electron-store": "^8.1.0",
"electron-updater": "^5.3.0",
"i18next": "^23.5.1",
"jstodotxt": "^1.0.0-alpha.0",
"material-ui-popup-state": "^5.0.9",
"mock-fs": "^5.2.0",
Expand All @@ -86,6 +87,7 @@
"react-autosuggest": "^10.1.0",
"react-beautiful-dnd": "^13.1.1",
"react-dom": "^18.2.0",
"react-i18next": "^13.2.2",
"react-router-dom": "^6.11.2",
"sugar": "^2.0.6"
},
Expand Down
14 changes: 7 additions & 7 deletions src/__tests__/__mock__/recurrence.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@

2023-09-24 Line 1 rec:1d due:2023-09-25
2023-09-24 Line 1 rec:w due:2023-10-01
2023-09-24 Line 1 rec:2m due:2023-11-24
2023-09-24 Line 1 rec:+1d due:2023-09-26
2023-09-24 Line 1 rec:7w due:2023-11-12
2023-09-26 Line 1 rec:1d due:2023-09-27
2023-09-26 Line 1 rec:w due:2023-10-03
2023-09-26 Line 1 rec:2m due:2023-11-26
2023-09-26 Line 1 rec:+1d due:2023-09-28
2023-09-26 Line 1 rec:7w due:2023-11-14
2023-07-21 Line 1 due:2023-07-24 rec:+1b
2021-01-01 taxes are due in one year t:2022-03-30 due:2022-04-30 rec:+1y
2023-09-24 Water plants @home +quick due:2023-10-01 t:2023-09-21 rec:1w
2023-09-24 Line 1 rec:+1d t:2023-09-20 due:2023-09-25
2023-09-26 Water plants @home +quick due:2023-10-03 t:2023-09-23 rec:1w
2023-09-26 Line 1 rec:+1d t:2023-09-20 due:2023-09-27
2 changes: 1 addition & 1 deletion src/__tests__/__mock__/test.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Line 1
Edited line
New line
2023-09-24 New line with creation date
2023-09-26 New line with creation date
New line with relative threshold date t:June 3rd, 2005
3 changes: 2 additions & 1 deletion src/__tests__/main/ArchiveTodos.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ const mockIpcMainEvent = {
reply: jest.fn(),
};


describe('Archiving', () => {
beforeEach(async() => {
jest.clearAllMocks();
Expand All @@ -33,7 +34,7 @@ describe('Archiving', () => {
});

test('Should collect data from todo and done file and merge it properly', async () => {
await archiveTodos(mockIpcMainEvent);
await archiveTodos();
const fileContent = await fs.readFile('./src/__tests__/__mock__/done.txt', 'utf8');
const expectedContent = `x 2022-02-02 todo from done.txt 1\nx 2022-02-03 todo from done.txt 2\nx 2022-02-04 todo from done.txt 3\nx 2022-02-05 todo from done.txt 4\nx 2022-02-01 Finished todo 3\nx 2022-02-08 Finished todo 1\nx 2022-02-17 Finished todo 2`;
await new Promise((resolve) => setTimeout(resolve, 1000));
Expand Down
66 changes: 66 additions & 0 deletions src/locales/cs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
{
"copy": "Kopírovat",
"delete": "Smazat",
"cancel": "Zrušit",
"fileTabs.changeLocation": "Změnit umístění souboru done.txt",
"fileTabs.revealFile": "Zobrazit v Průzkumníku",
"fileTabs.removeFileHeadline": "Odstranit soubor ze sleek?",
"fileTabs.removeFileText": "Nebude smazán z pevného disku.",
"fileTabs.removeFileLabel": "Odstranit",
"settings.headline": "Nastavení",
"settings.appendCreationDate": "Přidat datum vytvoření při vytvoření úkolu",
"settings.convertRelativeToAbsoluteDates": "Převést relativní data na absolutní data",
"settings.notificationsAllowed": "Poslat oznámení, když je termín dnes nebo zítra",
"settings.showFileTabs": "Zobrazit záložky souborů",
"settings.tray": "Minimalizovat do oznamovací oblasti",
"settings.colorTheme": "Téma",
"settings.system": "Sledovat systém",
"settings.light": "Světlé",
"settings.dark": "Tmavé",
"settings.language": "Jazyk",
"drawer.tabs.attributes": "Atributy",
"drawer.tabs.filters": "Filtry",
"drawer.tabs.sorting": "Řazení",
"drawer.filters.showCompleted": "Dokončené úkoly",
"drawer.filters.showHidden": "Skryté úkoly",
"drawer.filters.thresholdDateInTheFuture": "Termín v budoucnosti",
"drawer.filters.dueDateInTheFuture": "Termín splnění v budoucnosti",
"drawer.attributes.noAttributesAvailable": "Zatím nejsou k dispozici žádné atributy",
"drawer.sorting.fileSorting": "Seřadit úkoly podle pořadí v souboru",
"shared.attributeMapping.t": "Termín",
"shared.attributeMapping.due": "Termín splnění",
"shared.attributeMapping.projects": "Projekty",
"shared.attributeMapping.contexts": "Kontexty",
"shared.attributeMapping.priority": "Priorita",
"shared.attributeMapping.rec": "Opakování",
"shared.attributeMapping.pm": "Pomodoros",
"shared.attributeMapping.created": "Datum vytvoření",
"shared.attributeMapping.completed": "Datum dokončení",
"splashscreen.noFiles.text": "Přetáhněte sem soubor todo.txt nebo použijte tlačítka",
"splashscreen.noFiles.open": "Otevřít soubor todo.txt",
"splashscreen.noFiles.create": "Vytvořit soubor todo.txt",
"splashscreen.noTodosAvailable.text": "V tomto souboru nejsou žádné úkoly",
"splashscreen.noTodosAvailable.create": "Vytvořit úkol",
"splashscreen.noTodosVisible.text": "Žádné výsledky nejsou viditelné.",
"splashscreen.noTodosVisible.reset": "Obnovit filtry a hledání",
"search.visibleTodos": "Viditelné úkoly: ",
"todoDialog.footer.save": "Uložit",
"todoDialog.footer.cancel": "Zrušit",
"todoDialog.snackbar.emptyInput": "Zadejte prosím něco do textového pole",
"todoDialog.priorityPicker.label": "Priorita",
"todoDialog.datePicker.threshold": "Termín",
"todoDialog.datePicker.due": "Termín splnění",
"todoDialog.recurrencePicker.label": "Opakování",
"todoDialog.recurrencePicker.every": "Každý",
"todoDialog.recurrencePicker.day": "den",
"todoDialog.recurrencePicker.businessDay": "pracovní den",
"todoDialog.recurrencePicker.week": "týden",
"todoDialog.recurrencePicker.month": "měsíc",
"todoDialog.recurrencePicker.year": "rok",
"todoDialog.recurrencePicker.strict": "striktní",
"prompt.delete.headline": "Smazat úkol?",
"prompt.delete.text": "Úkol bude trvale odstraněn ze souboru",
"prompt.archive.headline": "Archivovat dokončené úkoly?",
"prompt.archive.text": "Tímto se přesunou všechny dokončené úkoly do vašeho určeného souboru done",
"prompt.archive.button": "Archivovat"
}
Loading

0 comments on commit 7798e2d

Please sign in to comment.