Compare commits

...

5 Commits

Author SHA1 Message Date
1b5c32c320
Improve i18n
All checks were successful
Pull Request / build (pull_request) Successful in 3m35s
2024-10-17 22:18:08 +02:00
e028bed311
Fix horizontal scrollbar showing up on search results listview 2024-10-17 21:33:25 +02:00
6f59af3cde
Cleanup .fxml files 2024-10-17 21:33:04 +02:00
4b84ec5a82
Wrap example sentences 2024-10-17 21:10:27 +02:00
039cb7e0a8
Cleanup details.fxml 2024-10-17 21:10:13 +02:00
11 changed files with 132 additions and 103 deletions

View File

@ -24,7 +24,7 @@ class DictionaryEntryCellFactory(private val resources: ResourceBundle, private
}
companion object {
private const val CELL_PADDING = 16
private const val CELL_PADDING = 24
}
}

View File

@ -26,6 +26,7 @@ class SentenceCellFactory(private val config: Config) : Callback<ListView<Senten
private class SentenceCell(private val config: Config) : ListCell<SentenceFx?>() {
private val labelSentence = Label().apply {
styleClass.add("sentence")
isWrapText = true
}
private val root = VBox(labelSentence)

View File

@ -6,25 +6,23 @@
<?import javafx.scene.web.WebView?>
<VBox stylesheets="/css/details.css" xmlns="http://javafx.com/javafx/23" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="com.marvinelsen.willow.ui.controllers.DetailsController">
<FlowPane fx:id="flowPaneHeader" hgap="8.0" onContextMenuRequested="#headerOnContextMenuRequested" prefHeight="38.0"
prefWidth="412.0" rowValignment="BASELINE" styleClass="flow-pane-header" vgap="8.0" VBox.vgrow="NEVER">
<FlowPane fx:id="flowPaneHeader" hgap="8.0" vgap="8.0" rowValignment="BASELINE" VBox.vgrow="NEVER"
onContextMenuRequested="#headerOnContextMenuRequested">
<padding>
<Insets bottom="6.0" left="6.0" right="6.0" top="6.0"/>
</padding>
<Label fx:id="labelHeadword" styleClass="headword" text="Label"/>
<Label fx:id="labelPronunciation" styleClass="pronunciation">
</Label>
<Label fx:id="labelHeadword" styleClass="headword"/>
<Label fx:id="labelPronunciation" styleClass="pronunciation"/>
</FlowPane>
<TabPane fx:id="tabPaneDetails" tabClosingPolicy="UNAVAILABLE" VBox.vgrow="ALWAYS">
<Tab closable="false" text="%tab.definition">
<WebView fx:id="webViewDefinition" minHeight="-1.0" minWidth="-1.0" prefHeight="-1.0" prefWidth="-1.0"/>
<Tab closable="false" text="%details.tab.definition">
<WebView fx:id="webViewDefinition"/>
</Tab>
<Tab id="tabSentences" closable="false" text="%tab.sentences">
<Tab id="tabSentences" closable="false" text="%details.tab.sentences">
<StackPane>
<ProgressIndicator fx:id="progressIndicatorSentences" visible="false"/>
<Label fx:id="labelNoSentencesFound" text="%list.no_sentences_found" textAlignment="CENTER"
visible="false"
wrapText="true">
<Label fx:id="labelNoSentencesFound" text="%details.list.no_sentences_found" textAlignment="CENTER"
visible="false" wrapText="true">
<padding>
<Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/>
</padding>
@ -32,17 +30,16 @@
<ListView fx:id="listViewSentences"/>
</StackPane>
</Tab>
<Tab id="tabWords" closable="false" text="%tab.words">
<Tab id="tabWords" closable="false" text="%details.tab.words">
<VBox maxHeight="1.7976931348623157E308">
<TitledPane animated="false" maxHeight="-Infinity" text="%list.words_beginning" VBox.vgrow="ALWAYS">
<TitledPane animated="false" maxHeight="-Infinity" text="%details.list.words_beginning" VBox.vgrow="ALWAYS">
<StackPane>
<padding>
<Insets bottom="0.0" left="0.0" right="0.0" top="0.0"/>
</padding>
<ProgressIndicator fx:id="progressIndicatorWordsBeginning" visible="false"/>
<Label fx:id="labelNoWordsBeginningFound" text="%list.no_words_found" textAlignment="CENTER"
visible="false"
wrapText="true">
<Label fx:id="labelNoWordsBeginningFound" text="%details.list.no_words_found" textAlignment="CENTER"
visible="false" wrapText="true">
<padding>
<Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/>
</padding>
@ -50,15 +47,14 @@
<ListView fx:id="listViewWordsBeginning" prefHeight="4000"/>
</StackPane>
</TitledPane>
<TitledPane animated="false" maxHeight="-Infinity" text="%list.words_containing" VBox.vgrow="ALWAYS">
<TitledPane animated="false" maxHeight="-Infinity" text="%details.list.words_containing" VBox.vgrow="ALWAYS">
<StackPane>
<padding>
<Insets bottom="0.0" left="0.0" right="0.0" top="0.0"/>
</padding>
<ProgressIndicator fx:id="progressIndicatorWordsContaining" visible="false"/>
<Label fx:id="labelNoWordsContainingFound" text="%list.no_words_found" textAlignment="CENTER"
visible="false"
wrapText="true">
<Label fx:id="labelNoWordsContainingFound" text="%details.list.no_words_found" textAlignment="CENTER"
visible="false" wrapText="true">
<padding>
<Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/>
</padding>
@ -68,10 +64,10 @@
</TitledPane>
</VBox>
</Tab>
<Tab fx:id="tabCharacters" id="tabCharacters" closable="false" text="%tab.characters">
<Tab fx:id="tabCharacters" id="tabCharacters" closable="false" text="%details.tab.characters">
<StackPane>
<ListView fx:id="listViewCharacters"/>
<Label fx:id="labelNoCharactersFound" text="%list.no_characters_found" textAlignment="CENTER"
<Label fx:id="labelNoCharactersFound" text="%details.list.no_characters_found" textAlignment="CENTER"
visible="false" wrapText="true">
<padding>
<Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/>

View File

@ -15,7 +15,7 @@
<Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/>
</BorderPane.margin>
<fx:include source="/fxml/search.fxml"/>
<SplitPane styleClass="split-pane" dividerPositions="0.33" VBox.vgrow="ALWAYS">
<SplitPane dividerPositions="0.33" VBox.vgrow="ALWAYS">
<fx:include source="/fxml/search-results.fxml"/>
<fx:include source="/fxml/details.fxml"/>
</SplitPane>

View File

@ -5,12 +5,12 @@
<?import javafx.scene.control.ListView?>
<?import javafx.scene.control.ProgressIndicator?>
<?import javafx.scene.layout.StackPane?>
<StackPane xmlns="http://javafx.com/javafx/23" xmlns:fx="http://javafx.com/fxml/1"
<StackPane minWidth="100" xmlns="http://javafx.com/javafx/23" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="com.marvinelsen.willow.ui.controllers.SearchResultsController"
stylesheets="/css/search-results.css">
<ListView fx:id="listViewSearchResults" disable="true" minWidth="150.0"/>
<Label fx:id="labelNoEntriesFound" text="%list.no_entries_found" textAlignment="CENTER"
visible="false" wrapText="true">
<ListView fx:id="listViewSearchResults" disable="true"/>
<Label fx:id="labelNoEntriesFound" text="%search.results.list.no_entries_found" textAlignment="CENTER" visible="false"
wrapText="true">
<padding>
<Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/>
</padding>

View File

@ -18,20 +18,17 @@
<SearchMode fx:value="SIMPLIFIED"/>
</userData>
</RadioButton>
<RadioButton mnemonicParsing="false" text="%search.mode.traditional"
toggleGroup="$searchModeToggleGroup">
<RadioButton mnemonicParsing="false" text="%search.mode.traditional" toggleGroup="$searchModeToggleGroup">
<userData>
<SearchMode fx:value="TRADITIONAL"/>
</userData>
</RadioButton>
<RadioButton mnemonicParsing="false" text="%search.mode.pinyin"
toggleGroup="$searchModeToggleGroup">
<RadioButton mnemonicParsing="false" text="%search.mode.pinyin" toggleGroup="$searchModeToggleGroup">
<userData>
<SearchMode fx:value="PINYIN"/>
</userData>
</RadioButton>
<RadioButton mnemonicParsing="false" text="%search.mode.phrase"
toggleGroup="$searchModeToggleGroup">
<RadioButton mnemonicParsing="false" text="%search.mode.phrase" toggleGroup="$searchModeToggleGroup">
<userData>
<SearchMode fx:value="SEGMENTS"/>
</userData>

View File

@ -1,13 +1,24 @@
# Search
search.prompt=Search dictionary…
search.mode=Searching:
search.mode=Search mode:
search.mode.pinyin=Pinyin
search.mode.traditional=Traditional Chinese
search.mode.simplified=Simplified Chinese
search.mode.english=English
tab.definition=Definition
tab.sentences=Sentences
tab.words=Words
tab.characters=Characters
search.mode.traditional=Traditional
search.mode.simplified=Simplified
search.mode.phrase=Phrase
# Details
details.tab.definition=Definition
details.tab.sentences=Sentences
details.tab.words=Words
details.tab.characters=Characters
details.list.no_characters_found=No characters found
details.list.no_words_found=No words found
details.list.no_sentences_found=No sentences found.
details.list.words_beginning=Words beginning
details.list.words_containing=Words containing
# Menubar
menubar.file=_File
menubar.file.quit=_Quit
menubar.file.preferences=_Preferences…
@ -16,10 +27,6 @@ menubar.edit.copy.headword=Copy Headword
menubar.edit.copy.pronunciation=Copy Pronunciation
menubar.help=_Help
menubar.help.about=_About…
list.no_entries_found=No matching entries found
search.mode.phrase=Phrase
list.no_characters_found=No characters found
list.no_words_found=No words found
list.no_sentences_found=No sentences found.
list.words_beginning=Words beginning
list.words_containing=Words containing
# Search results
search.results.list.no_entries_found=No matching entries found

View File

@ -1,13 +1,24 @@
# Search
search.prompt=Durchsuche Wörterbuch…
search.mode=Suche:
search.mode=Suchmodus:
search.mode.pinyin=Pinyin
search.mode.traditional=Langzeichen
search.mode.simplified=Kurzzeichen
search.mode.english=Englisch
tab.definition=Definition
tab.sentences=Sätze
tab.words=Wörter
tab.characters=Schriftzeichen
search.mode.phrase=Satz
# Details
details.tab.definition=Definition
details.tab.sentences=Sätze
details.tab.words=Wörter
details.tab.characters=Schriftzeichen
details.list.no_characters_found=Keine Schriftzeichen gefunden
details.list.no_words_found=Keine Wörter gefunden
details.list.no_sentences_found=Keine Sätze gefunden
details.list.words_beginning=Am Wortanfang
details.list.words_containing=Im Wort
# Menubar
menubar.file=_Datei
menubar.file.quit=_Beenden
menubar.file.preferences=_Einstellungen…
@ -16,10 +27,6 @@ menubar.edit.copy.headword=Kopiere Wort
menubar.edit.copy.pronunciation=Kopiere Aussprache
menubar.help=_Hilfe
menubar.help.about=_Über…
list.no_entries_found=No matching entries found
search.mode.phrase=Phrase
list.no_characters_found=No characters found
list.no_words_found=No words found
list.no_sentences_found=No sentences found.
list.words_beginning=Words beginning
list.words_containing=Words containing
# Search results
search.results.list.no_entries_found=Keine passenden Einträge gefunden

View File

@ -1,13 +1,24 @@
# Search
search.prompt=Search dictionary…
search.mode=Searching:
search.mode=Search mode:
search.mode.pinyin=Pinyin
search.mode.traditional=Traditional Chinese
search.mode.simplified=Simplified Chinese
search.mode.english=English
tab.definition=Definition
tab.sentences=Sentences
tab.words=Words
tab.characters=Characters
search.mode.traditional=Traditional
search.mode.simplified=Simplified
search.mode.phrase=Phrase
# Details
details.tab.definition=Definition
details.tab.sentences=Sentences
details.tab.words=Words
details.tab.characters=Characters
details.list.no_characters_found=No characters found
details.list.no_words_found=No words found
details.list.no_sentences_found=No sentences found.
details.list.words_beginning=Words beginning
details.list.words_containing=Words containing
# Menubar
menubar.file=_File
menubar.file.quit=_Quit
menubar.file.preferences=_Preferences…
@ -16,10 +27,6 @@ menubar.edit.copy.headword=Copy Headword
menubar.edit.copy.pronunciation=Copy Pronunciation
menubar.help=_Help
menubar.help.about=_About…
list.no_entries_found=No matching entries found
search.mode.phrase=Phrase
list.no_characters_found=No characters found
list.no_words_found=No words found
list.no_sentences_found=No sentences found.
list.words_beginning=Words beginning
list.words_containing=Words containing
# Search results
search.results.list.no_entries_found=No matching entries found

View File

@ -1,13 +1,24 @@
#Search
search.prompt=搜尋…
search.mode=搜尋:
search.mode=搜尋模式:
search.mode.pinyin=漢語拼音
search.mode.traditional=繁體字
search.mode.simplified=簡體字
search.mode.english=英文
tab.definition=Definition
tab.sentences=例句
tab.words=
tab.characters=
search.mode.phrase=句子
# Details
details.tab.definition=釋義
details.tab.sentences=例句
details.tab.words=
details.tab.characters=
details.list.no_characters_found=No characters found
details.list.no_words_found=No words found
details.list.no_sentences_found=No sentences found.
details.list.words_beginning=Words beginning
details.list.words_containing=Words containing
# Menubar
menubar.file=_檔案
menubar.file.quit=_結束 Willow
menubar.file.preferences=_設定…
@ -16,10 +27,6 @@ menubar.edit.copy.headword=複製 Wort
menubar.edit.copy.pronunciation=複製 Aussprache
menubar.help=_說明
menubar.help.about=_關於 Willow…
list.no_entries_found=No matching entries found
search.mode.phrase=Phrase
list.no_characters_found=No characters found
list.no_words_found=No words found
list.no_sentences_found=No sentences found.
list.words_beginning=Words beginning
list.words_containing=Words containing
# Search results
search.results.list.no_entries_found=No matching entries found

View File

@ -1,13 +1,24 @@
# Search
search.prompt=搜尋…
search.mode=搜尋:
search.mode=搜尋模式:
search.mode.pinyin=漢語拼音
search.mode.traditional=繁體字
search.mode.simplified=簡體字
search.mode.english=英文
tab.definition=Definition
tab.sentences=例句
tab.words=
tab.characters=
search.mode.phrase=句子
# Details
details.tab.definition=釋義
details.tab.sentences=例句
details.tab.words=
details.tab.characters=
details.list.no_characters_found=No characters found
details.list.no_words_found=No words found
details.list.no_sentences_found=No sentences found
details.list.words_beginning=Words beginning
details.list.words_containing=Words containing
# Menubar
menubar.file=_檔案
menubar.file.quit=_結束 Willow
menubar.file.preferences=_設定…
@ -16,10 +27,6 @@ menubar.edit.copy.headword=複製 Wort
menubar.edit.copy.pronunciation=複製 Aussprache
menubar.help=_說明
menubar.help.about=_關於 Willow…
list.no_entries_found=No matching entries found
search.mode.phrase=Phrase
list.no_characters_found=No characters found
list.no_words_found=No words found
list.no_sentences_found=No sentences found.
list.words_beginning=Words beginning
list.words_containing=Words containing
# Search results
search.results.list.no_entries_found=No matching entries found