~jan0sch/smederee
Showing details for patch 01fb5f4da1725c740dfc186f9d7bd5ce2d6661c9.
diff -rN -u old-smederee/modules/hub/src/main/resources/assets/css/landingpage.css new-smederee/modules/hub/src/main/resources/assets/css/landingpage.css --- old-smederee/modules/hub/src/main/resources/assets/css/landingpage.css 2025-02-02 11:58:49.725472083 +0000 +++ new-smederee/modules/hub/src/main/resources/assets/css/landingpage.css 2025-02-02 11:58:49.725472083 +0000 @@ -84,6 +84,30 @@ font-size: 120%; } + .button-success, + .button-error, + .button-warning, + .button-secondary { + color: white; + border-radius: 4px; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + } + + .button-success { + background: rgb(28, 184, 65); + } + + .button-error { + background: rgb(202, 60, 60); + } + + .button-warning { + background: rgb(223, 117, 20); + } + + .button-secondary { + background: rgb(66, 184, 221); + } /* * -- MENU STYLES -- diff -rN -u old-smederee/modules/hub/src/main/resources/assets/css/main.css new-smederee/modules/hub/src/main/resources/assets/css/main.css --- old-smederee/modules/hub/src/main/resources/assets/css/main.css 2025-02-02 11:58:49.725472083 +0000 +++ new-smederee/modules/hub/src/main/resources/assets/css/main.css 2025-02-02 11:58:49.725472083 +0000 @@ -3,6 +3,31 @@ /*margin-right: 1em;*/ } +.button-success, +.button-error, +.button-warning, +.button-secondary { + color: white; + border-radius: 4px; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); +} + +.button-success { + background: rgb(28, 184, 65); +} + +.button-error { + background: rgb(202, 60, 60); +} + +.button-warning { + background: rgb(223, 117, 20); +} + +.button-secondary { + background: rgb(66, 184, 221); +} + .pure-button { background-color: #1f8dd6; color: white; diff -rN -u old-smederee/modules/hub/src/main/resources/messages_en.properties new-smederee/modules/hub/src/main/resources/messages_en.properties --- old-smederee/modules/hub/src/main/resources/messages_en.properties 2025-02-02 11:58:49.725472083 +0000 +++ new-smederee/modules/hub/src/main/resources/messages_en.properties 2025-02-02 11:58:49.725472083 +0000 @@ -47,28 +47,77 @@ global.login=Login global.logout=Logout global.navbar.top.logo=Smederee -global.navbar.top.repository.new=New Repository +global.navbar.top.repositories.all=All repositories +global.navbar.top.repositories.yours=Your repositories +global.navbar.top.repository.new=New repository global.privacy=Privacy Policy global.signup=Sign Up global.terms.of.use=Terms of Use # Landing Pages +landingpage.alpha.future-goals.intro=We intend to develop the Smederee into a production ready project during the alpha phase. Afterwards we'll phase over into a beta phase during which remaining bugs are squashed and the payment system will be introduced. +landingpage.alpha.future-goals.title=Goals for the alpha phase. +landingpage.alpha.guarantees.data-safety.text=Frequent backups are performed and everything is stored on servers inside the EU which implies that it is protected by the EU GDPR regulation, so what is yours stays yours. Furthermore we do our best to secure our systems as best as we can. +landingpage.alpha.guarantees.data-safety.title=Safety of account data +landingpage.alpha.guarantees.intro=Even though the Smederee is considered alpha we provide the following guarantees: +landingpage.alpha.guarantees.title=Guarantees during alpha +landingpage.alpha.intro=Although we are aiming for high quality software an alpha implies several rough edges which we will explain a bit on this page. +landingpage.alpha.issues.changes.text=As we are developing and testing our product we might run into situation where bigger changes to existing features are necessary. Nonetheless we try to reduce these to a minimum. +landingpage.alpha.issues.changes.title=Existing services might be subject to change +landingpage.alpha.issues.incomplete.text=Several features are not yet available. +landingpage.alpha.issues.incomplete.title=Incomplete feature set +landingpage.alpha.issues.intro=As mentioned some issues are to be expected, most notably: +landingpage.alpha.issues.payment.text=Once we reach the phase in which the project stabilises and can be considered at least beta all users will be required to pay. However there is no payment plan yet and also we do not plan to price out users that are unable to pay. We will communicate these changes in advance and try to reach a feasible solution. +landingpage.alpha.issues.payment.title=After the alpha phase payment will be required. +landingpage.alpha.issues.title=Issues to expect +landingpage.alpha.title=Details about the public alpha phase of Smederee. + +landingpage.index.footer.alpha.title=Public alpha phase +landingpage.index.footer.alpha.text=We are currently running the Smederee as a public alpha service. This means that some functionality is incomplete or not yet implemented. Also existing services might be subject to change. +landingpage.index.footer.alpha.link-text=Read more details about what to expect while using the Smederee. +landingpage.index.footer.services.link-text=Our Services +landingpage.index.footer.services.title=Software Consulting and Development +landingpage.index.footer.services.text=Hire our experienced engineers to deliver solutions to your problems. We are used to solving hard problems and working across a multitude of business domains. While bringing in knowledge from our field of expertise we provide mentoring to increase the potential of your teams. landingpage.index.getstarted.title=Get started today landingpage.index.menu.heading=Smederee -landingpage.index.pitch.title=Smederee brings teams together to build solid software! landingpage.index.pitch.header.first=Code Hosting -landingpage.index.pitch.teaser.first=Hosted darcs repositories with fine grained access control including read only access for users without an account. +landingpage.index.pitch.header.fourth=Seamless CI/CD landingpage.index.pitch.header.second=Issue Tracking -landingpage.index.pitch.teaser.second=Enjoy powerful and focussed issue tracking and project management which seamlessly integrates with email and mailing lists. landingpage.index.pitch.header.third=Code Review -landingpage.index.pitch.teaser.third=Review patches the way it was meant to be by leveraging the power of email without missing out on a web based interface. -landingpage.index.pitch.header.fourth=Seamless CI/CD +landingpage.index.pitch.teaser.first=Hosted darcs repositories with fine grained access control including read only access for users without an account. landingpage.index.pitch.teaser.fourth=Coming soon... -landingpage.index.ribbon.title=We help you to craft great tools! +landingpage.index.pitch.teaser.second=Enjoy powerful and focussed issue tracking and project management which seamlessly integrates with email and mailing lists. +landingpage.index.pitch.teaser.third=Review patches the way it was meant to be by leveraging the power of email without missing out on a web based interface. +landingpage.index.pitch.title=Smederee brings teams together to build solid software! landingpage.index.ribbon.text=Benefit from our experience with building software for decades and leverage efficient engineering tools to craft your own software. All of your data is protected by the EU GDPR regulation, so what is yours stays yours. No tracking, no third party cookies and no dependencies on external services! -landingpage.index.splash.title=Craft Software! +landingpage.index.ribbon.title=We help you to craft great tools! landingpage.index.splash.text=Leverage the power of the <a href="http://darcs.net" target="_blank">darcs</a> vcs to handle your projects with ease and confidence and rest assured that we won't track you or sell your data! +landingpage.index.splash.title=Craft Software! -landingpage.welcome.title=Welcome to the Smederee! -landingpage.welcome.ribbon.title=Thank you and welcome! +landingpage.welcome.image.alt=A neon sign saying: Do something great! landingpage.welcome.ribbon.text=Welcome to the smederee! You can now use your credentials to login and start creating. Please note that some functionalities are locked until you have verified your email address. +landingpage.welcome.ribbon.title=Thank you and welcome! +landingpage.welcome.title=Welcome to the Smederee! + +# Repository pages +repositories.all.column.description=Description +repositories.all.column.name=Name +repositories.all.none-found=No repositories found. + +repositories.yours.column.description=Description +repositories.yours.column.name=Name +repositories.yours.none-found=Looks like you don't have any repositories created yet. + +repository.menu.changes.next=Next +repository.menu.changes=Changes +repository.menu.files=Files +repository.menu.overview=Overview +repository.menu.website=Website +repository.menu.website.tooltip=Click here to open the project website ({0}) in a new tab or window. +repository.description.title=Summary: + +repository.overview.clone.title=Clone this repository +repository.overview.clone.read-only=read-only +repository.overview.clone.read-write=read-write +repository.overview.latest-changes=Latest changes + diff -rN -u old-smederee/modules/hub/src/main/scala/de/smederee/hub/LandingPageRoutes.scala new-smederee/modules/hub/src/main/scala/de/smederee/hub/LandingPageRoutes.scala --- old-smederee/modules/hub/src/main/scala/de/smederee/hub/LandingPageRoutes.scala 2025-02-02 11:58:49.725472083 +0000 +++ new-smederee/modules/hub/src/main/scala/de/smederee/hub/LandingPageRoutes.scala 2025-02-02 11:58:49.725472083 +0000 @@ -38,6 +38,8 @@ * A higher kinded type providing needed functionality, which is usually an IO monad like Async or Sync. */ final class LandingPageRoutes[F[_]: Async](linkConfig: ExternalLinkConfig) extends Http4sDsl[F] { + // The base URI for our site which that be passed into some templates which create links themselfes. + private val baseUri = linkConfig.createFullUri(Uri()) // The URL that shall be used in the `action` field of the form. private val signupUri = linkConfig.createFullUri(uri"/signup") @@ -45,19 +47,26 @@ case ar @ GET -> Root as user => for { csrf <- Sync[F].delay(ar.req.getCsrfToken) - resp <- Ok(views.html.index()()(signupUri, csrf, "Welcome to the Smederee!".some, user.some)) + resp <- Ok(views.html.index(baseUri)()(signupUri, csrf, "Welcome to the Smederee!".some, user.some)) } yield resp } private val mainSite: HttpRoutes[F] = HttpRoutes.of { case req @ GET -> Root => for { csrf <- Sync[F].delay(req.getCsrfToken) - resp <- Ok(views.html.index()()(signupUri, csrf, "Welcome to the Smederee!".some)) + resp <- Ok(views.html.index(baseUri)()(signupUri, csrf, "Welcome to the Smederee!".some)) + } yield resp + } + + private val publicAlpha: HttpRoutes[F] = HttpRoutes.of { case req @ GET -> Root / "public-alpha" => + for { + csrf <- Sync[F].delay(req.getCsrfToken) + resp <- Ok(views.html.publicAlpha(baseUri)(csrf, "Smederee - Details about our public alpha.".some)) } yield resp } val protectedRoutes = mainSiteForLoggedInUsers - val routes = mainSite + val routes = publicAlpha <+> mainSite } diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/index.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/index.scala.html --- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/index.scala.html 2025-02-02 11:58:49.725472083 +0000 +++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/index.scala.html 2025-02-02 11:58:49.725472083 +0000 @@ -94,19 +94,12 @@ </div> <div class="l-box-lrg pure-u-1 pure-u-md-3-5"> - <h4>Contact Us</h4> - <p> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, - quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo - consequat. - </p> + <h4>@Messages("landingpage.index.footer.services.title")</h4> + <p>@Messages("landingpage.index.footer.services.text")</p> + <a class="button-success pure-button" href="https://www.wegtam.com/services/" target="_blank">@Messages("landingpage.index.footer.services.link-text")</a> - <h4>More Information</h4> - <p> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. - </p> + <h4>@Messages("landingpage.index.footer.alpha.title")</h4> + <p>@Messages("landingpage.index.footer.alpha.text") <a href="@{baseUri.addPath("public-alpha")}">@Messages("landingpage.index.footer.alpha.link-text")</a></p> </div> </div> diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/navbar.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/navbar.scala.html --- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/navbar.scala.html 2025-02-02 11:58:49.725472083 +0000 +++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/navbar.scala.html 2025-02-02 11:58:49.725472083 +0000 @@ -4,10 +4,10 @@ <a class="logo pure-menu-heading" href="@baseUri">@Messages("global.navbar.top.logo")</a> <ul class="pure-menu-list"> - <li class="pure-menu-item"><a class="pure-menu-link" href="@{baseUri.addPath("projects")}">Projects</a></li> + <li class="pure-menu-item"><a class="pure-menu-link" href="@{baseUri.addPath("projects")}">@Messages("global.navbar.top.repositories.all")</a></li> @if(user.nonEmpty) { @for(account <- user) { - <li class="pure-menu-item"><a class="pure-menu-link" href="@{baseUri.addPath(s"~${account.name}")}">Your projects</a></li> + <li class="pure-menu-item"><a class="pure-menu-link" href="@{baseUri.addPath(s"~${account.name}")}">@Messages("global.navbar.top.repositories.yours")</a></li> } <li class="pure-menu-item"><a class="pure-menu-link" href="@{baseUri.addPath("repo/create")}">+ @Messages("global.navbar.top.repository.new")</a></li> <li class="pure-menu-item"> diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/publicAlpha.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/publicAlpha.scala.html --- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/publicAlpha.scala.html 1970-01-01 00:00:00.000000000 +0000 +++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/publicAlpha.scala.html 2025-02-02 11:58:49.725472083 +0000 @@ -0,0 +1,40 @@ +@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"))(csrf: Option[CsrfToken] = None, title: Option[String] = None) +@myHeaders = { + <link rel="stylesheet" href="@{baseUri.addPath("assets/css/landingpage.css")}" /> + <style> + main.content-wrapper { + top: unset !important; + } + </style> +} +@main(baseUri, lang)(customHeaders = myHeaders)(csrf, title) { +@defining(lang.toLocale) { implicit locale => +<div class="content"> + <div class="pure-g"> + <div class="pure-u-1-1 pure-u-md-1-1"> + <div class="l-box"> + <h1>@Messages("landingpage.alpha.title")</h1> + <p>@Messages("landingpage.alpha.intro")</p> + <hr/> + <h2>@Messages("landingpage.alpha.issues.title")</h2> + <p>@Messages("landingpage.alpha.issues.intro")</p> + <h3>@Messages("landingpage.alpha.issues.incomplete.title")</h3> + <p>@Messages("landingpage.alpha.issues.incomplete.text")</p> + <h3>@Messages("landingpage.alpha.issues.changes.title")</h3> + <p>@Messages("landingpage.alpha.issues.incomplete.text")</p> + <h3>@Messages("landingpage.alpha.issues.payment.title")</h3> + <p>@Messages("landingpage.alpha.issues.incomplete.text")</p> + <hr/> + <h2>@Messages("landingpage.alpha.guarantees.title")</h2> + <p>@Messages("landingpage.alpha.guarantees.intro")</p> + <h3>@Messages("landingpage.alpha.guarantees.data-safety.title")</h3> + <p>@Messages("landingpage.alpha.guarantees.data-safety.text")</p> + <hr/> + <h2>@Messages("landingpage.alpha.future-goals.title")</h2> + <p>@Messages("landingpage.alpha.future-goals.intro")</p> + </div> + </div> + </div> +</div> +} +} diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showAllRepositories.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showAllRepositories.scala.html --- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showAllRepositories.scala.html 2025-02-02 11:58:49.725472083 +0000 +++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showAllRepositories.scala.html 2025-02-02 11:58:49.725472083 +0000 @@ -10,8 +10,8 @@ <thead> <tr> <th></th> - <th>Name</th> - <th>Description</th> + <th>@Messages("repositories.all.column.name")</th> + <th>@Messages("repositories.all.column.description")</th> </tr> </thead> <tbody> @@ -29,7 +29,7 @@ </tbody> </table> } else { - <div class="alert alert-warning">No repositories found.</div> + <div class="alert alert-warning">@Messages("repositories.all.none-found")</div> } </div> </div> diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositories.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositories.scala.html --- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositories.scala.html 2025-02-02 11:58:49.725472083 +0000 +++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositories.scala.html 2025-02-02 11:58:49.725472083 +0000 @@ -10,8 +10,8 @@ <thead> <tr> <th></th> - <th>Name</th> - <th>Description</th> + <th>@Messages("repositories.yours.column.name")</th> + <th>@Messages("repositories.yours.column.description")</th> </tr> </thead> <tbody> @@ -25,7 +25,7 @@ </tbody> </table> } else { - <div class="alert alert-secondary">No repositories found.</div> + <div class="alert alert-secondary">@Messages("repositories.yours.none-found")</div> } </div> </div> diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryFiles.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryFiles.scala.html --- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryFiles.scala.html 2025-02-02 11:58:49.725472083 +0000 +++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryFiles.scala.html 2025-02-02 11:58:49.725472083 +0000 @@ -8,11 +8,11 @@ <h2><a href="@{baseUri.addSegment(s"~${vcsRepository.owner.name}")}">~@vcsRepository.owner.name</a>/@vcsRepository.name</h2> <nav class="pure-menu pure-menu-horizontal"> <ul class="pure-menu-list"> - <li class="pure-menu-item"><a class="pure-menu-link" href="@repositoryBaseUri"><i class="fa-solid fa-eye"></i> Overview</a></li> - <li class="pure-menu-item pure-menu-active"><a class="pure-menu-link" href="@repositoryBaseUri.addSegment("files")"><i class="fa-solid fa-folder-tree"></i> Files</a></li> - <li class="pure-menu-item"><a class="pure-menu-link" href="@repositoryBaseUri.addSegment("history")"><i class="fa-solid fa-timeline"></i> Changes</a></li> + <li class="pure-menu-item"><a class="pure-menu-link" href="@repositoryBaseUri"><i class="fa-solid fa-eye"></i> @Messages("repository.menu.overview")</a></li> + <li class="pure-menu-item pure-menu-active"><a class="pure-menu-link" href="@repositoryBaseUri.addSegment("files")"><i class="fa-solid fa-folder-tree"></i> @Messages("repository.menu.files")</a></li> + <li class="pure-menu-item"><a class="pure-menu-link" href="@repositoryBaseUri.addSegment("history")"><i class="fa-solid fa-timeline"></i> @Messages("repository.menu.changes")</a></li> @for(website <- vcsRepository.website) { - <li class="pure-menu-item"><a class="pure-menu-link" href="@website" target="_blank" title="Click here to open the project website (@website) in a new tab or window."><i class="fa-solid fa-up-right-from-square"></i> Website</a></li> + <li class="pure-menu-item"><a class="pure-menu-link" href="@website" target="_blank" title="@Messages("repository.menu.website.tooltip", website)"><i class="fa-solid fa-up-right-from-square"></i> @Messages("repository.menu.website")</a></li> } </ul> </nav> diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryHistory.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryHistory.scala.html --- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryHistory.scala.html 2025-02-02 11:58:49.725472083 +0000 +++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryHistory.scala.html 2025-02-02 11:58:49.729472093 +0000 @@ -8,11 +8,11 @@ <h2><a href="@{baseUri.addSegment(s"~${vcsRepository.owner.name}")}">~@vcsRepository.owner.name</a>/@vcsRepository.name</h2> <nav class="pure-menu pure-menu-horizontal"> <ul class="pure-menu-list"> - <li class="pure-menu-item"><a class="pure-menu-link" href="@actionBaseUri"><i class="fa-solid fa-eye"></i> Overview</a></li> - <li class="pure-menu-item"><a class="pure-menu-link" href="@actionBaseUri.addSegment("files")"><i class="fa-solid fa-folder-tree"></i> Files</a></li> - <li class="pure-menu-item pure-menu-active"><a class="pure-menu-link" href="@actionBaseUri.addSegment("history")"><i class="fa-solid fa-timeline"></i> Changes</a></li> + <li class="pure-menu-item"><a class="pure-menu-link" href="@actionBaseUri"><i class="fa-solid fa-eye"></i> @Messages("repository.menu.overview")</a></li> + <li class="pure-menu-item"><a class="pure-menu-link" href="@actionBaseUri.addSegment("files")"><i class="fa-solid fa-folder-tree"></i> @Messages("repository.menu.files")</a></li> + <li class="pure-menu-item pure-menu-active"><a class="pure-menu-link" href="@actionBaseUri.addSegment("history")"><i class="fa-solid fa-timeline"></i> @Messages("repository.menu.changes")</a></li> @for(website <- vcsRepository.website) { - <li class="pure-menu-item"><a class="pure-menu-link" href="@website" target="_blank" title="Click here to open the project website (@website) in a new tab or window."><i class="fa-solid fa-up-right-from-square"></i> Website</a></li> + <li class="pure-menu-item"><a class="pure-menu-link" href="@website" target="_blank" title="@Messages("repository.menu.website.tooltip", website)"><i class="fa-solid fa-up-right-from-square"></i> @Messages("repository.menu.website")</a></li> } </ul> </nav> @@ -30,7 +30,7 @@ <nav class="pure-menu pure-menu-horizontal"> <ul class="pure-menu-list"> @for(next <- nextEntry) { - <li class="pure-menu-item"><a class="pure-menu-link" href="@repositoryBaseUri.addSegment("history").withOptionQueryParam("from", nextEntry)">Next <i class="fa-solid fa-angle-right"></i></a></li> + <li class="pure-menu-item"><a class="pure-menu-link" href="@repositoryBaseUri.addSegment("history").withOptionQueryParam("from", nextEntry)">@Messages("repository.menu.changes.next") <i class="fa-solid fa-angle-right"></i></a></li> } </ul> </nav> diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryOverview.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryOverview.scala.html --- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryOverview.scala.html 2025-02-02 11:58:49.725472083 +0000 +++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryOverview.scala.html 2025-02-02 11:58:49.729472093 +0000 @@ -8,17 +8,17 @@ <h2><a href="@{baseUri.addSegment(s"~${vcsRepository.owner.name}")}">~@vcsRepository.owner.name</a>/@vcsRepository.name</h2> <nav class="pure-menu pure-menu-horizontal"> <ul class="pure-menu-list"> - <li class="pure-menu-item pure-menu-active"><a class="pure-menu-link" href="@actionBaseUri"><i class="fa-solid fa-eye"></i> Overview</a></li> - <li class="pure-menu-item"><a class="pure-menu-link" href="@actionBaseUri.addSegment("files")"><i class="fa-solid fa-folder-tree"></i> Files</a></li> - <li class="pure-menu-item"><a class="pure-menu-link" href="@actionBaseUri.addSegment("history")"><i class="fa-solid fa-timeline"></i> Changes</a></li> + <li class="pure-menu-item pure-menu-active"><a class="pure-menu-link" href="@actionBaseUri"><i class="fa-solid fa-eye"></i> @Messages("repository.menu.overview")</a></li> + <li class="pure-menu-item"><a class="pure-menu-link" href="@actionBaseUri.addSegment("files")"><i class="fa-solid fa-folder-tree"></i> @Messages("repository.menu.files")</a></li> + <li class="pure-menu-item"><a class="pure-menu-link" href="@actionBaseUri.addSegment("history")"><i class="fa-solid fa-timeline"></i> @Messages("repository.menu.changes")</a></li> @for(website <- vcsRepository.website) { - <li class="pure-menu-item"><a class="pure-menu-link" href="@website" target="_blank" title="Click here to open the project website (@website) in a new tab or window."><i class="fa-solid fa-up-right-from-square"></i> Website</a></li> + <li class="pure-menu-item"><a class="pure-menu-link" href="@website" target="_blank" title="@Messages("repository.menu.website.tooltip", website)"><i class="fa-solid fa-up-right-from-square"></i> @Messages("repository.menu.website")</a></li> } </ul> </nav> @for(description <- vcsRepository.description) { <div class="repo-summary-description"> - <strong>Summary:</strong> @description + <strong>@Messages("repository.description.title")</strong> @description </div> } </div> @@ -27,15 +27,15 @@ <div class="pure-g"> <div class="pure-u-3-5 pure-u-md-3-5"> <div class="l-box"> - <h3>Latest changes</h3> + <h3>@Messages("repository.overview.latest-changes")</h3> <pre class="latest-changes"><code>@vcsRepositoryHistory</code></pre> </div> </div> <div class="pure-u-2-5 pure-u-md-2-5"> <div class="l-box"> - <h3>Clone</h3> + <h3>@Messages("repository.overview.clone.title")</h3> <dl class="clone-links"> - <dt>read-only</dt> + <dt>@Messages("repository.overview.clone.read-only")</dt> <dd> <form class="pure-form"> <fieldset> @@ -43,7 +43,7 @@ </fieldset> </form> </dd> - <dt>read-write</dt> + <dt>@Messages("repository.overview.clone.read-write")</dt> <dd>TODO</dd> </dl> </div> diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/welcome.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/welcome.scala.html --- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/welcome.scala.html 2025-02-02 11:58:49.725472083 +0000 +++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/welcome.scala.html 2025-02-02 11:58:49.729472093 +0000 @@ -7,7 +7,7 @@ <div class="content"> <div class="ribbon l-box-lrg pure-g" style="background: #2d3e50; color: #aaa; padding: 2em; border-bottom: 1px solid rgba(0,0,0,0.1);"> <div class="l-box-lrg is-center pure-u-1 pure-u-md-1-2 pure-u-lg-2-5"> - <img width="300" alt="A neon sign saying: Do something great!" class="pure-img-responsive" src="@{baseUri.addPath("assets/img/clark-tibbs-oqStl2L5oxI-unsplash.jpg")}"> + <img width="300" alt="@Messages("landingpage.welcome.image.alt")" class="pure-img-responsive" src="@{baseUri.addPath("assets/img/clark-tibbs-oqStl2L5oxI-unsplash.jpg")}"> </div> <div class="pure-u-1 pure-u-md-1-2 pure-u-lg-3-5"> <h2 class="content-head content-head-ribbon" style="color: white;">@Messages("landingpage.welcome.ribbon.title")</h2>