Compare commits
6 Commits
698da7f8b7
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 2111cfa1d1 | |||
| c8d1639afa | |||
| 43e11178db | |||
| 4828a68bcd | |||
| 2b25c13095 | |||
| 357bcae450 |
@ -6,6 +6,8 @@ let TranslationFormHook = {
|
||||
this.tunit_editor = this.el.querySelector("#tunit-editor-content")
|
||||
this.save_edit_button = this.el.querySelector("#save-edit-button")
|
||||
this.save_publish_button = this.el.querySelector("#save-publish-button")
|
||||
let article_preview_links = document.querySelectorAll(".article-preview a")
|
||||
article_preview_links.forEach(el => el.addEventListener('click', e => e.preventDefault()))
|
||||
},
|
||||
keyupHandler(e) {
|
||||
var push_event = true
|
||||
|
||||
@ -56,6 +56,7 @@ defmodule Outlook.InternalTree do
|
||||
|
||||
def render_public_content(tree, translation, language) do
|
||||
Translation.render_translation(tree, translation)
|
||||
|> garnish(%{})
|
||||
|> Html.render_doc()
|
||||
|> Hyphenation.hyphenate(language)
|
||||
end
|
||||
|
||||
@ -10,7 +10,7 @@ defmodule Outlook.InternalTree.RawInternalBasic do
|
||||
|
||||
@splitmarker "@@translationunit@@"
|
||||
@nonperiodmarker "@@nonperiod@@"
|
||||
@void_elements ~w(img br hr)
|
||||
@void_elements ~w(img br hr iframe)
|
||||
|
||||
def set_split_markers([ %InternalNode{type: :text} = textnode | rest ]) do
|
||||
[ %InternalNode{textnode |
|
||||
@ -18,7 +18,7 @@ defmodule Outlook.InternalTree.RawInternalBasic do
|
||||
|> String.replace(~r/\.\.\.+/u, "…")
|
||||
|> String.replace(~r/([[:upper:]])\./u, "\\1#{@nonperiodmarker}")
|
||||
|> String.replace(~r/(\d)\.(\d)/u, "\\1#{@nonperiodmarker}\\2")
|
||||
|> String.replace(~r|([.?!]["'”]?\s*)|u, "\\1#{@splitmarker}")
|
||||
|> String.replace(~r|([.?!]["'”’]?\s*)|u, "\\1#{@splitmarker}")
|
||||
|> String.replace(@nonperiodmarker, ".")
|
||||
} | set_split_markers(rest) ]
|
||||
end
|
||||
|
||||
@ -52,7 +52,7 @@ defmodule Outlook.InternalTree.TunitModifications do
|
||||
end
|
||||
[%InternalNode{node| content: content} | apply_modifier(rest, modifier, tu_ids)]
|
||||
end
|
||||
def apply_modifier([node, rest], modifier, tu_ids), do: [node | apply_modifier(rest, modifier, tu_ids)]
|
||||
def apply_modifier([node | rest], modifier, tu_ids), do: [node | apply_modifier(rest, modifier, tu_ids)]
|
||||
def apply_modifier([],_, _), do: []
|
||||
|
||||
def process_tunit_list(tunits, modifier, tu_ids) do
|
||||
|
||||
@ -9,7 +9,7 @@ defmodule OutlookWeb.DarkModeComponent do
|
||||
|
||||
def dark_mode_widget(assigns) do
|
||||
~H"""
|
||||
<div id="dark-mode-widget" class="absolute flex w-full justify-between p-0" phx-hook="dark_mode_widget">
|
||||
<div id="dark-mode-widget" class="relative flex w-full justify-between p-0" phx-hook="dark_mode_widget">
|
||||
<div class="flex"></div>
|
||||
<div class="flex">
|
||||
<button class="p-2" type="button">
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
</a>
|
||||
<.dark_mode_widget />
|
||||
</header>
|
||||
<main class="px-2 py-4 sm:px-6 lg:px-8">
|
||||
<main class="px-2 sm:px-6 lg:px-8">
|
||||
<div class="mx-auto max-w-xl">
|
||||
<.flash kind={:info} title="Success!" flash={@flash} />
|
||||
<.flash kind={:error} title="Error!" flash={@flash} />
|
||||
|
||||
@ -51,7 +51,7 @@ defmodule OutlookWeb.TranslationLive.FormComponent do
|
||||
</.simple_form>
|
||||
<.tunit_editor current_tunit={@current_tunit} target={@myself} />
|
||||
</div>
|
||||
<div class="article basis-1/2 max-h-screen overflow-auto">
|
||||
<div class="article article-preview basis-1/2 max-h-screen overflow-auto">
|
||||
<.button phx-disable-with="Translating..." phx-click="translate-deepl" phx-target={@myself}
|
||||
data-confirm-not="Are you sure? All previously translated text will be lost.">Translate with Deepl</.button>
|
||||
<progress :if={@deepl_progress} max="100" value={@deepl_progress} />
|
||||
|
||||
Reference in New Issue
Block a user