Code Monkey home page Code Monkey logo

inlang-fink's Introduction

inlang-fink's People

Contributors

samuelstroschein avatar

Watchers

 avatar

inlang-fink's Issues

Improve workflow conditions based on repo meta infos

Context

Users have trouble with pushing because Fink isn't aware of
Therefore the lix API was extend by:

Proposal

by Jan opral/monorepo#2897 (comment):

  • check if forking is allowed, if not hide the fork feature
  • user has admin rights permissions.admin, if not and app not installed, disable push and tell user to have admin install app
  • if pull permission is false and allow forking is true only show the forking workflow

---

  • update "Cannot access the repository**"** card to include the installation of the inlang GitHub app by the repository owner

searchable projects

Context

It's hard to find the project "website" without a searchbox.

CleanShot 2024-06-03 at 07.00.47@2x.png

Proposal

Have a searchbar for the projects

CleanShot 2024-06-03 at 07.02.12@2x.png

Inconsistent behavior for letter-casing in adding language in Fink and paraglide-init

When we use paraglide-init for a list of languages to support, it will automatically regularize the string so that all letter are in lower case, for example ko-Kore becomes ko-kore and zh-HanT becomes zh-hant. However, when you add a new language from Fink settings, the regularization is not triggered (implemented), so if you input ko-Kore it will be kept as ko-Kore which makes inconsistency across inlang infrastructure.

BCP 47 and RFCs specified that letter casing of language tag must never be differentiated, albeit conventions similar to zh-Hant-TW are recommended for readability. However, for paraglide, usually the language tag will be involved as a part of a url, which are usually lower cased, so it is also understandable to normalize to lowercase.

I think we should either enforce lowercasing in Fink, or disable the enforcement in paraglide-init

Editor pushes messages to the root when project.inlang is below a subdirectory

Description

Hi !
I'm currently having an issue with Fink that I've never seen before. When I go on the online editor, it detects correctly my messages files and my translations. However, when I have edited them and I push on my branch, it creates a /messages folder, with all translations, in the root of my repository instead of modifying the current translations I already have in /frontend/messages

Configuration

Here is my project structure:

|--backend
|--frontend
   |--project.inlang
      |--project_id
      |--settings.json
   |--messages
      |--en.json
      |--fr.json

And here is the settings.json:

{
	"$schema": "https://inlang.com/schema/project-settings",
	"sourceLanguageTag": "en",
	"languageTags": ["en", "fr"],
	"modules": [
		"https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-empty-pattern@latest/dist/index.js",
		"https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-identical-pattern@latest/dist/index.js",
		"https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-missing-translation@latest/dist/index.js",
		"https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-without-source@latest/dist/index.js",
		"https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-valid-js-identifier@latest/dist/index.js",
		"https://cdn.jsdelivr.net/npm/@inlang/plugin-message-format@latest/dist/index.js",
		"https://cdn.jsdelivr.net/npm/@inlang/plugin-m-function-matcher@latest/dist/index.js"
	],
	"plugin.inlang.messageFormat": {
		"pathPattern": "./messages/{languageTag}.json"
	}
}

Question

It never did that before and I didn't change anything in my configuration since I use Inlang and Fink editor. I don't understand if it's coming from a regression or maybe a release which changes the base structure of an inlang project ?

Cross-sell Ninja & Sherlock in Fink

Have a nice prompt during or after push that makes you think better collab with devs and asks: do you want to recommend Ninja + Sherlock to your devs.

decide on tech stack

Context

We need to re-open the tech stack decision. Lit for SPAs is not a good match.

  • Shadow DOM style encapsulation collides with how SPAs are developed, especially with Tailwind CSS. The result is a constant flash of styles when navigating pages.
  • Lit has no state management solution suited for SPAs. Using [context])https://www.npmjs.com/package/@lit/context) has no ergonomic way of setting state from childs. Every state change must come from the parent.
  • Vike had client side routing hickups where a fresh request to the server was executed. Don't know why. Not worth investigating further.

Options

Framework

  1. Stick with lit for fink and continue trying to make it work.
  2. Use SolidJS as we did for fink v1
  3. Use React.

Routing

  1. Vike even though we don't need SSR stuff. Just routing.
  2. If React is chosen, we can use production proven react router.

Validate that inlang project errors are shown in Fink

Problem

We do not appear to have tests to validate that inlang project errors are actually visible to users in Fink.
e.g message load errors on initial project open, or file save errors while editing messages.

Proposal

Add validation to ensure that project errors are visible to users in Fink.

Introduce `inlang-settings` to Fink

Context

Since the new inlang-settings component is done, every app should use this instead of manage.inlang.com

Proposal

Replace link to manage with settings component

Growth is beginning to slow down

This issue origined from INECO-1

Context/Problem

For now, Fink relies on the growth of the ecosystem. Can we find other growth channels for now?
Ninja is one of these strategies. How are we gonna proceed with that?

Proposal: Let's start experimenting with ninja.

I would start doing the first experiments with PRs, to see if we can potentially automate stuff.

focus project selection on project names instead of path/to/inlang.project to reduce cognitive load

Context

It's overwhelming to look at the project selection.

  • long paths that are hard to read
  • paths have duplicate information to project name e.g. website/website.inlang is twice "ah this is the website project"

CleanShot 2024-06-13 at 06.27.31@2x.png

Proposal

Focus the project selection around project names by giving the path less importance by:

  1. Only display the project name in the dropdown selector
  2. Put the main focus in the dropdown selector on the project names, not paths
  3. Remove {name}.inlang files from the path because every path ends with .inlang and {name} is shown at the beginning. There is no additional value in showing it.

CleanShot 2024-06-13 at 06.32.25@2x.png

Additional information

  • this nudges users to name their projects [to avoid a project, project, project list]. imo this is good
  • the proposal aligns with how we use web apps, see the figma screenshot

CleanShot 2024-06-13 at 06.36.34@2x.png

Tasks

  • (1) only show project name in dropdown selector
  • (2) main focus on project name instead of path in dropdown menu
  • (3) directory path doesn't show {name}.inlang
  • directory path shows dots (../*) to indicate that the path is shortened (see FINK-44)

Test issue

@niklas.buchfink said in FINK-12:

Updating this, as Ninja should get cross-selled by Fink, but not Sherlock
(see FINK-8)

adding a language is confusing

Context

The plus button for adding a language is confusing because it's not a filter like "all" and "none is"

Proposal

Move plus button to a menu item "add a new language" which opens the FINK-21.

CleanShot 2024-04-16 at 13.55.37@2x.png

Sketch Fink UI flow for non devs

Context

@niklas.buchfink said in FINK-11:

After a few more thoughts.

Ideal UX

If I'm part of the team, I open the project, make my changes and it should be commited, when I'm done. (To support autosaving, these changes are collected and commited, when the user is done. The lix server might help with that in the future. Also for live collaboration)

I just open the file, make my changes and automatically open changes request, if I'm not part of the team. The team is notified and can decide to add this changes. (fork + pr workflow in the background)

If I want this file to diverge, I want to click copy. Maybe I we can offer features like, "get updates from the original" or "merge documents", but since the copy action was done, we don't assume PRs anymore and users explicitly state that the copy should be updated or merged with main. (same forking + pr workflow as well, but with explicit user actions)

Proposal

  • sketch non-dev workflow in excalidraw
  • streamline Lix workflow in the background
  • take different use cases into account (external -> PR via fork, internal -> PR via branch)

Show displayNames of language in Fink

Context

We should show the normal human-readable language names in the Fink language dropdown

Proposal

Use the [Intl.DisplayNames](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames#language_display_names) to show the English DisplayName with the BCP-47 tag behind. e.g.

  • German de
  • American English en-US
  • Traditional Chinese zh-Hant

Open question: Should we keep the sorting

  1. based on languageTags and maybe have the displayName in brackets or
  2. based on the displayNames

Refetch project after adding a language

Context

If a user adds a language and data already exists, the message is not shown as the project data is not re-fetched with the latest settings.

Proposal

Refetch the project after a new language was added.

the doc won't let me push changes

image

this is the errror code i get when i try to save the changes in the document.

this is the line

image

and this is the change i am trying to save

image

Handle disabled forks on company level

Context

Some companies have forks disabled at the company level.

Proposal

  • Detect disabled forks on company level (LIX-57)
  • Don't show the fork button in LixFloat
  • Branch workflow: Create translation branch -> add changes -> create PR

Show Fink version in UI

Context

When issues come up for Fink:

  1. We can't roll back to an older version
  2. It is difficult for us to understand since which version this problem exists
  3. Fink always uses the newest version of lix and the inlang-message-sdk after updates are merged

Proposal

  • Version Fink FINK-5
  • Display the current version in the UI

Make PushException in Fink consistent

Context

There are three different types of error that are difficult to handle.

Proposal

They should be typed and have the same format to reliably trigger the PushPermissionsDialog

Add fallback for not existing branches

Context

Currently, Fink fails if the branch doesnt exist when accessing it via the url param:

imageimageimage.png

CProposal

Create a fallback to main / master to let for example sherlock provide a branch in the Open in Fink url which might not yet / anymore exist.

Newlines not committed correctly in fink

Hi, when i enter a text in fink newlines get messed up on commit:

Entering

Message

Header
- Point 1
- Point 2

will get committed as

Message
Header- Point 1-Point 2

This messes up a lot, I cannot use fink any more at the moment...

Also (may be related): When I copy the same text from fink to my local text editor the original message transforms to:

Message

Header

- Point 1

- Point 2

Failed to push changes

Failed to push changes
Please try again or file a bug. Failed to push

I have all my translation finished but this message keeps on appearing

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.