Compare commits

...

5 Commits

Author SHA1 Message Date
5917e79635 Fix letters 'q' and 'z' not being in the dictionary
Enfore that all one-grams are present in the dictionary to make sure
it's possible to write any sentence
2025-05-17 00:25:51 +02:00
623888851b Remove Test project 2025-05-16 23:37:59 +02:00
b036cddb07 Add Web UI page title 2025-05-16 23:14:13 +02:00
1b0cfa58be Fix Web UI clear button 2025-05-16 23:10:17 +02:00
218389ae06 Add translator web ui 2025-05-16 22:53:32 +02:00
20 changed files with 773 additions and 357 deletions

View File

@@ -56,7 +56,7 @@ Console.WriteLine("Computing ngrams");
var ngrams = new Dictionary<string, long>();
const int MaxLength = 8;
const int MinLength = 1;
const int MinLength = 2;
foreach (var (word, frequency) in wordFrequencies)
{
@@ -112,9 +112,15 @@ Console.WriteLine("Generating dictionary...");
var dictionary = new Dictionary<string, string>();
var ngramIndex = 0;
// Prepend base letters to make sure all words are writeable
string[] oneGrams = [
" ", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"
];
var fullNgrams = oneGrams.Concat(orderedNgrams.Select(p => p.Key)).ToArray();
foreach (var letter in Alphabet.BaseAlphabet)
{
dictionary[letter] = orderedNgrams[ngramIndex].Key;
dictionary[letter] = fullNgrams[ngramIndex];
ngramIndex++;
}

View File

@@ -1,25 +0,0 @@
// See https://aka.ms/new-console-template for more information
using System.Text;
using PoyoLang.Translator;
Console.OutputEncoding = Encoding.UTF8;
var text = "Immutable abstract representation of a span of text. For example, in an error diagnostic that reports a location, it could come from a parsed string, text from a tool editor buffer, etc.";
Console.WriteLine("Original:");
Console.WriteLine(text);
Console.WriteLine();
var translator = new PoyoLangTranslator();
var translated = translator.TranslateToPoyo(text);
Console.WriteLine("Translated to Poyo:");
Console.WriteLine(translated);
Console.WriteLine();
var original = translator.TranslateFromPoyo(translated);
Console.WriteLine("Translated back from Poyo:");
Console.WriteLine(original);

View File

@@ -0,0 +1,21 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<base href="/"/>
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap" rel="stylesheet"/>
<link href=@Assets["_content/MudBlazor/MudBlazor.min.css"] rel="stylesheet"/>
<ImportMap/>
<link rel="icon" type="image/ico" href="favicon.ico"/>
<HeadOutlet @rendermode="InteractiveServer"/>
</head>
<body>
<Routes @rendermode="InteractiveServer"/>
<script src="_framework/blazor.web.js"></script>
<script src=@Assets["_content/MudBlazor/MudBlazor.min.js"]></script>
</body>
</html>

View File

@@ -0,0 +1,101 @@
@inherits LayoutComponentBase
<MudThemeProvider Theme="@_theme" IsDarkMode="_isDarkMode"/>
<MudPopoverProvider/>
<MudDialogProvider/>
<MudSnackbarProvider/>
<MudLayout>
<MudAppBar Elevation="1">
<MudText Typo="Typo.h5" Class="ml-3">PoyoLang</MudText>
<MudSpacer />
<MudIconButton Icon="@(DarkLightModeButtonIcon)" Color="Color.Inherit" OnClick="@DarkModeToggle" />
<MudIconButton Icon="@Icons.Custom.Brands.GitHub" Color="Color.Inherit" Edge="Edge.End"
Href="https://git.ilysix.fr/Eveldee/PoyoLang" Target="_blank" />
</MudAppBar>
<MudMainContent Class="pt-16 pa-4">
<MudContainer MaxWidth="MaxWidth.Large">
@Body
</MudContainer>
</MudMainContent>
</MudLayout>
<div id="blazor-error-ui" data-nosnippet>
An unhandled error has occurred.
<a href="." class="reload">Reload</a>
<span class="dismiss">🗙</span>
</div>
@code {
private bool _drawerOpen = true;
private bool _isDarkMode = true;
private MudTheme? _theme = null;
protected override void OnInitialized()
{
base.OnInitialized();
_theme = new()
{
PaletteLight = _lightPalette,
PaletteDark = _darkPalette,
LayoutProperties = new LayoutProperties()
};
}
private void DrawerToggle()
{
_drawerOpen = !_drawerOpen;
}
private void DarkModeToggle()
{
_isDarkMode = !_isDarkMode;
}
private readonly PaletteLight _lightPalette = new()
{
Black = "#110e2d",
AppbarText = "#424242",
AppbarBackground = "rgba(255,255,255,0.8)",
DrawerBackground = "#ffffff",
GrayLight = "#e8e8e8",
GrayLighter = "#f9f9f9",
};
private readonly PaletteDark _darkPalette = new()
{
Primary = "#7e6fff",
Surface = "#1e1e2d",
Background = "#1a1a27",
BackgroundGray = "#151521",
AppbarText = "#92929f",
AppbarBackground = "rgba(26,26,39,0.8)",
DrawerBackground = "#1a1a27",
ActionDefault = "#74718e",
ActionDisabled = "#9999994d",
ActionDisabledBackground = "#605f6d4d",
TextPrimary = "#b2b0bf",
TextSecondary = "#92929f",
TextDisabled = "#ffffff33",
DrawerIcon = "#92929f",
DrawerText = "#92929f",
GrayLight = "#2a2833",
GrayLighter = "#1e1e2d",
Info = "#4a86ff",
Success = "#3dcb6c",
Warning = "#ffb545",
Error = "#ff3f5f",
LinesDefault = "#33323e",
TableLines = "#33323e",
Divider = "#292838",
OverlayLight = "#1e1e2d80",
};
public string DarkLightModeButtonIcon => _isDarkMode switch
{
true => Icons.Material.Rounded.AutoMode,
false => Icons.Material.Outlined.DarkMode,
};
}

View File

@@ -0,0 +1,19 @@
@page "/counter"
<PageTitle>Counter</PageTitle>
<MudText Typo="Typo.h3" GutterBottom="true">Counter</MudText>
<MudText Typo="Typo.body1" Class="mb-4">Current count: @currentCount</MudText>
<MudButton Color="Color.Primary" Variant="Variant.Filled" @onclick="IncrementCount">Click me</MudButton>
@code {
private int currentCount = 0;
private void IncrementCount()
{
currentCount++;
}
}

View File

@@ -0,0 +1,38 @@
@page "/Error"
@using System.Diagnostics
<PageTitle>Error</PageTitle>
<h1 class="text-danger">Error.</h1>
<h2 class="text-danger">An error occurred while processing your request.</h2>
@if (ShowRequestId)
{
<p>
<strong>Request ID:</strong> <code>@RequestId</code>
</p>
}
<h3>Development Mode</h3>
<p>
Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
</p>
<p>
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
It can result in displaying sensitive information from exceptions to end users.
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
and restarting the app.
</p>
@code{
[CascadingParameter]
private HttpContext? HttpContext { get; set; }
private string? RequestId { get; set; }
private bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
protected override void OnInitialized() =>
RequestId = Activity.Current?.Id ?? HttpContext?.TraceIdentifier;
}

View File

@@ -0,0 +1,146 @@
@page "/"
@using PoyoLang.Translator
@inject PoyoLangTranslator Translator
@inject IJSRuntime JsRuntime
@inject ISnackbar Snackbar
<PageTitle>PoyoLang Translator</PageTitle>
<MudText Typo="Typo.h3" GutterBottom="true" Class="mt-5">PoyoLang Translator</MudText>
<MudText Class="mb-5">Using this website you can freely translate from and to the Poyo language.
This language only use variations of the word "poyo" (320 of them!) to write sentences using the latin alphabet.
If you want more information about how this language works and how it is possible to translate to and from it,
check out the <MudLink href="https://git.ilysix.fr/Eveldee/PoyoLang" Target="_blank">source code</MudLink> of this whole project.</MudText>
<MudToggleGroup T="string" @bind-Value="_sourceLanguage" @bind-Value:after="SourceLanguageUpdated"
SelectionMode="SelectionMode.SingleSelection" Color="Color.Primary" CheckMark="true" FixedContent="true"
Class="mb-1" Style="max-width: 30em;">
<MudToggleItem Value="EnglishSourceLanguage" Text="English" />
<MudToggleItem Value="PoyoSourceLanguage" Text="Poyo" />
</MudToggleGroup>
@* Wide screen display *@
<MudHidden Breakpoint="Breakpoint.MdAndUp" Invert="true">
<MudStack Row="true" StretchItems="StretchItems.StartAndEnd" Class=".d-none .d-md-flex">
<MudStack>
<MudTextField @bind-Value="_sourceText" @bind-Value:after="UpdateTranslatedText" DebounceInterval="500"
Variant="Variant.Outlined" Label="Source text" Lines="15" />
</MudStack>
<MudStack Spacing="1" Row="false">
<MudTooltip Text="Swap languages">
<MudIconButton Icon="@Icons.Material.Filled.SwapHoriz" Color="Color.Primary" OnClick="SwapArrowClicked"/>
</MudTooltip>
<MudTooltip Text="Copy translation result">
<MudIconButton Icon="@Icons.Material.Filled.ContentCopy" Color="Color.Primary" OnClick="CopyResultClicked"/>
</MudTooltip>
<MudTooltip Text="Clear source text">
<MudIconButton Icon="@Icons.Material.Filled.Clear" Color="Color.Error" OnClick="ClearButtonClicked"/>
</MudTooltip>
</MudStack>
<MudStack>
<MudTextField @bind-Value="_translatedText" ReadOnly="true"
Variant="Variant.Outlined" Label="Translation result" Lines="15" />
</MudStack>
</MudStack>
</MudHidden>
@* Mobile display *@
<MudHidden Breakpoint="Breakpoint.MdAndUp">
<MudStack Row="false" StretchItems="StretchItems.StartAndEnd">
<MudStack>
<MudTextField @bind-Value="_sourceText" @bind-Value:after="UpdateTranslatedText" DebounceInterval="500"
Variant="Variant.Outlined" Label="Source text" Lines="15" />
</MudStack>
<MudStack Spacing="1" Row="true">
<MudTooltip Text="Swap languages">
<MudIconButton Icon="@Icons.Material.Filled.SwapHoriz" Color="Color.Primary" OnClick="SwapArrowClicked"/>
</MudTooltip>
<MudTooltip Text="Copy translation result">
<MudIconButton Icon="@Icons.Material.Filled.ContentCopy" Color="Color.Primary" OnClick="CopyResultClicked"/>
</MudTooltip>
<MudTooltip Text="Clear source text">
<MudIconButton Icon="@Icons.Material.Filled.Clear" Color="Color.Error" OnClick="ClearButtonClicked"/>
</MudTooltip>
</MudStack>
<MudStack>
<MudTextField @bind-Value="_translatedText" ReadOnly="true"
Variant="Variant.Outlined" Label="Translation result" Lines="15" />
</MudStack>
</MudStack>
</MudHidden>
@code {
private const string EnglishSourceLanguage = "English";
private const string PoyoSourceLanguage = "PoyoLang";
private string _sourceText = "";
private string _translatedText = "";
private string _sourceLanguage = EnglishSourceLanguage;
protected override void OnInitialized()
{
Snackbar.Configuration.PositionClass = Defaults.Classes.Position.BottomCenter;
}
private void SourceLanguageUpdated()
{
UpdateTranslatedText();
}
private void SwapArrowClicked()
{
_sourceLanguage = _sourceLanguage switch
{
PoyoSourceLanguage => EnglishSourceLanguage,
_ => PoyoSourceLanguage
};
SwapLanguages();
}
private void SwapLanguages()
{
_sourceText = _translatedText;
UpdateTranslatedText();
}
private void UpdateTranslatedText()
{
string result;
if (_sourceLanguage is PoyoSourceLanguage)
{
result = Translator.TranslateFromPoyo(_sourceText);
}
else
{
result = Translator.TranslateToPoyo(_sourceText);
}
_translatedText = result;
}
private async Task CopyResultClicked()
{
await JsRuntime.InvokeVoidAsync("navigator.clipboard.writeText", _translatedText);
Snackbar.Add("Translation result copied to clipboard!", Severity.Info);
}
private void ClearButtonClicked()
{
_sourceText = string.Empty;
_translatedText = string.Empty;
}
}

View File

@@ -0,0 +1,6 @@
<Router AppAssembly="typeof(Program).Assembly">
<Found Context="routeData">
<RouteView RouteData="routeData" DefaultLayout="typeof(Layout.MainLayout)"/>
<FocusOnNavigate RouteData="routeData" Selector="h1"/>
</Found>
</Router>

View File

@@ -0,0 +1,12 @@
@using System.Net.Http
@using System.Net.Http.Json
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using static Microsoft.AspNetCore.Components.Web.RenderMode
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.JSInterop
@using MudBlazor
@using MudBlazor.Services
@using PoyoLang.Translator.Web
@using PoyoLang.Translator.Web.Components

View File

@@ -1,14 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<RootNamespace>PoyoLang.Translator.Web</RootNamespace>
<Version>0.1.2</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MudBlazor" Version="8.*"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\PoyoLang.Translator\PoyoLang.Translator.csproj" />
</ItemGroup>
</Project>
</Project>

View File

@@ -0,0 +1,34 @@
using MudBlazor.Services;
using PoyoLang.Translator;
using PoyoLang.Translator.Web.Components;
var builder = WebApplication.CreateBuilder(args);
// Add MudBlazor services
builder.Services.AddMudServices();
// Add services to the container.
builder.Services.AddRazorComponents()
.AddInteractiveServerComponents();
builder.Services.AddSingleton<PoyoLangTranslator>();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error", createScopeForErrors: true);
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseAntiforgery();
app.MapStaticAssets();
app.MapRazorComponents<App>()
.AddInteractiveServerRenderMode();
app.Run();

View File

@@ -0,0 +1,23 @@
{
"$schema": "https://json.schemastore.org/launchsettings.json",
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:5083",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "https://localhost:7137;http://localhost:5083",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}

View File

@@ -0,0 +1,8 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}

View File

@@ -0,0 +1,9 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -1,320 +1,320 @@
poyo=
poyó=e
poyò=t
poyô=a
poyö=o
poyõ=i
poyō=n
poyǒ=e
póyo=r
póyó=h
póyò=s
póyô=l
póyö=d
póyõ=c
póyō=th
póyǒ=u
pòyo=t
pòyó=he
pòyò=m
pòyô=b
pòyö=f
pòyõ=y
pòyō=p
pòyǒ=the
pôyo=n
pôyó=w
pôyò=g
pôyô=he
pôyö=in
pôyõ=y
pôyō=d
pôyǒ=r
pöyo=an
pöyó=er
pöyò=the
pöyô=be
pöyö=at
pöyõ=re
pöyō=v
pöyǒ=on
põyo=o
põyó=nd
põyò=or
põyô=be
põyö=ha
põyõ=en
põyō=to
põyǒ=ve
pōyo=ou
pōyó=nd
pōyò=it
pōyô=st
pōyö=l
pōyõ=k
pōyō=te
pōyǒ=al
pǒyo=ti
pǒyó=f
pǒyò=and
pǒyô=s
pǒyö=er
pǒyõ=nt
pǒyō=and
pǒyǒ=of
payo=ar
payó=a
payò=se
payô=to
payö=ea
payõ=hi
payō=of
payǒ=me
páyo=le
páyó=on
páyò=h
páyô=co
páyö=is
páyõ=in
páyō=at
páyǒ=ro
pàyo=ll
pàyó=ve
pàyò=de
pàyô=es
pàyö=ng
pàyõ=io
pàyō=om
pàyǒ=ne
pâyo=ic
pâyó=li
pâyò=ri
pâyô=ra
pâyö=as
pâyõ=ce
pâyō=g
pâyǒ=ho
päyo=ion
päyó=ca
päyò=or
päyô=ta
päyö=ut
päyõ=el
päyō=ch
päyǒ=m
pãyo=hat
pãyó=ma
pãyò=hat
pãyô=ur
pãyö=k
pãyõ=ng
pãyō=fo
pãyǒ=re
pāyo=no
pāyó=si
pāyò=her
pāyô=av
pāyö=nt
pāyõ=tha
pāyō=ion
pāyǒ=il
pǎyo=ent
pǎyó=et
pǎyò=la
pǎyô=us
pǎyö=ac
pǎyõ=ly
pǎyō=ing
pǎyǒ=wh
piyo=ow
piyó=ave
piyò=pe
piyô=ec
piyö=ly
piyõ=ot
piyō=tio
piyǒ=ll
píyo=tion
píyó=wi
píyò=ave
píyô=se
píyö=al
píyõ=ing
píyō=ge
píyǒ=it
pìyo=so
pìyó=that
pìyò=that
pìyô=for
pìyö=ay
pìyõ=st
pìyō=lo
pìyǒ=pr
pîyo=ee
pîyó=hav
pîyò=have
pîyô=have
pîyö=tr
pîyõ=sh
pîyō=le
pîyǒ=w
pïyo=mo
pïyó=an
pïyò=tion
pïyô=ut
pïyö=un
pïyõ=ce
pïyō=ct
pïyǒ=ay
pĩyo=me
pĩyó=di
pĩyò=ss
pĩyô=ed
pĩyö=i
pĩyõ=we
pĩyō=ol
pĩyǒ=yo
pīyo=ul
pīyó=rt
pīyò=te
pīyô=em
pīyö=th
pīyõ=ter
pīyō=do
pīyǒ=ke
pǐyo=po
pǐyó=ir
pǐyò=thi
pǐyô=nc
pǐyö=you
pǐyõ=his
pǐyō=im
pǐyǒ=is
puyo=oo
puyó=all
puyò=ent
puyô=ig
puyö=pa
puyõ=ate
puyō=p
puyǒ=ati
púyo=ld
púyó=fi
púyò=his
púyô=en
púyö=ver
púyõ=na
púyō=mi
púyǒ=ry
pùyo=ai
pùyó=pl
pùyò=ow
pùyô=gh
pùyö=wo
pùyõ=sa
pùyō=ad
pùyǒ=her
pûyo=ld
pûyó=ev
pûyò=su
pûyô=os
pûyö=iv
pûyõ=for
pûyō=ther
pûyǒ=wa
püyo=ni
püyó=ry
püyò=ith
püyô=am
püyö=bo
püyõ=u
püyō=ch
püyǒ=ab
pũyo=ou
pũyó=you
pũyò=op
pũyô=id
pũyö=wit
pũyõ=ne
pũyō=bu
pũyǒ=with
pūyo=fe
pūyó=tu
pūyò=bl
pūyô=ere
pūyö=atio
pūyõ=x
pūyō=ed
pūyǒ=ation
pǔyo=ome
pǔyó=out
pǔyò=con
pǔyô=ke
pǔyö=ns
pǔyõ=rea
pǔyō=eve
pǔyǒ=ci
peyo=ie
peyó=com
peyò=ar
peyô=et
peyö=ith
peyõ=vi
peyō=ty
peyǒ=with
péyo=ear
péyó=fr
péyò=if
péyô=ag
péyö=res
péyõ=ate
péyō=do
péyǒ=mp
pèyo=ey
pèyó=ive
pèyò=ia
pèyô=pro
pèyö=ba
pèyõ=ov
pèyō=nce
pèyǒ=as
pêyo=ck
pêyó=sta
pêyò=sp
pêyô=ty
pêyö=gr
pêyõ=ter
pêyō=ation
pêyǒ=hin
pëyo=ess
pëyó=ak
pëyò=ge
pëyô=ill
pëyö=go
pëyõ=out
pëyō=our
pëyǒ=ot
pẽyo=ey
pẽyó=fa
pẽyò=ss
pẽyô=igh
pẽyö=not
pẽyõ=int
pẽyō=ex
pẽyǒ=j
pēyo=om
pēyó=one
pēyò=ap
pēyô=men
pēyö=all
pēyõ=od
pēyō=here
pēyǒ=est
pěyo=up
pěyó=ive
pěyò=rs
pěyô=ere
pěyö=ove
pěyõ=nce
pěyō=ide
pěyǒ=uc
poyó=a
poyò=b
poyô=c
poyö=d
poyõ=e
poyō=f
poyǒ=g
póyo=h
póyó=i
póyò=j
póyô=k
póyö=l
póyõ=m
póyō=n
póyǒ=o
pòyo=p
pòyó=q
pòyò=r
pòyô=s
pòyö=t
pòyõ=u
pòyō=v
pòyǒ=w
pôyo=x
pôyó=y
pôyò=z
pôyô=e
pôyö=th
pôyõ=t
pôyō=he
pôyǒ=the
pöyo=n
pöyó=he
pöyò=in
pöyô=y
pöyö=d
pöyõ=r
pöyō=an
pöyǒ=er
põyo=the
põyó=be
põyò=at
põyô=re
põyö=on
põyõ=o
põyō=nd
põyǒ=or
pōyo=be
pōyó=ha
pōyò=en
pōyô=to
pōyö=ve
pōyõ=ou
pōyō=nd
pōyǒ=it
pǒyo=st
pǒyó=l
pǒyò=te
pǒyô=al
pǒyö=ti
pǒyõ=f
pǒyō=and
pǒyǒ=s
payo=er
payó=nt
payò=and
payô=of
payö=ar
payõ=a
payō=se
payǒ=to
páyo=ea
páyó=hi
páyò=of
páyô=me
páyö=le
páyõ=on
páyō=h
páyǒ=co
pàyo=is
pàyó=in
pàyò=at
pàyô=ro
pàyö=ll
pàyõ=ve
pàyō=de
pàyǒ=es
pâyo=ng
pâyó=io
pâyò=om
pâyô=ne
pâyö=ic
pâyõ=li
pâyō=ri
pâyǒ=ra
päyo=as
päyó=ce
päyò=g
päyô=ho
päyö=ion
päyõ=ca
päyō=or
päyǒ=ta
pãyo=ut
pãyó=el
pãyò=ch
pãyô=m
pãyö=hat
pãyõ=ma
pãyō=hat
pãyǒ=ur
pāyo=k
pāyó=ng
pāyò=fo
pāyô=re
pāyö=no
pāyõ=si
pāyō=her
pāyǒ=av
pǎyo=nt
pǎyó=tha
pǎyò=ion
pǎyô=il
pǎyö=ent
pǎyõ=et
pǎyō=la
pǎyǒ=us
piyo=ac
piyó=ly
piyò=ing
piyô=wh
piyö=ow
piyõ=ave
piyō=pe
piyǒ=ec
píyo=ly
píyó=ot
píyò=tio
píyô=ll
píyö=tion
píyõ=wi
píyō=ave
píyǒ=se
pìyo=al
pìyó=ing
pìyò=ge
pìyô=it
pìyö=so
pìyõ=that
pìyō=that
pìyǒ=for
pîyo=ay
pîyó=st
pîyò=lo
pîyô=pr
pîyö=ee
pîyõ=hav
pîyō=have
pîyǒ=have
pïyo=tr
pïyó=sh
pïyò=le
pïyô=w
pïyö=mo
pïyõ=an
pïyō=tion
pïyǒ=ut
pĩyo=un
pĩyó=ce
pĩyò=ct
pĩyô=ay
pĩyö=me
pĩyõ=di
pĩyō=ss
pĩyǒ=ed
pīyo=i
pīyó=we
pīyò=ol
pīyô=yo
pīyö=ul
pīyõ=rt
pīyō=te
pīyǒ=em
pǐyo=th
pǐyó=ter
pǐyò=do
pǐyô=ke
pǐyö=po
pǐyõ=ir
pǐyō=thi
pǐyǒ=nc
puyo=you
puyó=his
puyò=im
puyô=is
puyö=oo
puyõ=all
puyō=ent
puyǒ=ig
púyo=pa
púyó=ate
púyò=p
púyô=ati
púyö=ld
púyõ=fi
púyō=his
púyǒ=en
pùyo=ver
pùyó=na
pùyò=mi
pùyô=ry
pùyö=ai
pùyõ=pl
pùyō=ow
pùyǒ=gh
pûyo=wo
pûyó=sa
pûyò=ad
pûyô=her
pûyö=ld
pûyõ=ev
pûyō=su
pûyǒ=os
püyo=iv
püyó=for
püyò=ther
püyô=wa
püyö=ni
püyõ=ry
püyō=ith
püyǒ=am
pũyo=bo
pũyó=u
pũyò=ch
pũyô=ab
pũyö=ou
pũyõ=you
pũyō=op
pũyǒ=id
pūyo=wit
pūyó=ne
pūyò=bu
pūyô=with
pūyö=fe
pūyõ=tu
pūyō=bl
pūyǒ=ere
pǔyo=atio
pǔyó=ed
pǔyò=ation
pǔyô=ome
pǔyö=out
pǔyõ=con
pǔyō=ke
pǔyǒ=ns
peyo=rea
peyó=eve
peyò=ci
peyô=ie
peyö=com
peyõ=ar
peyō=et
peyǒ=ith
péyo=vi
péyó=ty
péyò=with
péyô=ear
péyö=fr
péyõ=if
péyō=ag
péyǒ=res
pèyo=ate
pèyó=do
pèyò=mp
pèyô=ey
pèyö=ive
pèyõ=ia
pèyō=pro
pèyǒ=ba
pêyo=ov
pêyó=nce
pêyò=as
pêyô=ck
pêyö=sta
pêyõ=sp
pêyō=ty
pêyǒ=gr
pëyo=ter
pëyó=ation
pëyò=hin
pëyô=ess
pëyö=ak
pëyõ=ge
pëyō=ill
pëyǒ=go
pẽyo=out
pẽyó=our
pẽyò=ot
pẽyô=ey
pẽyö=fa
pẽyõ=ss
pẽyō=igh
pẽyǒ=not
pēyo=int
pēyó=ex
pēyò=om
pēyô=one
pēyö=ap
pēyõ=men
pēyō=all
pēyǒ=od
pěyo=here
pěyó=est
pěyò=up
pěyô=ive
pěyö=rs
pěyõ=ere
pěyō=ove
pěyǒ=nce

View File

@@ -2,14 +2,14 @@
Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PoyoLang.Dictionary", "PoyoLang.Dictionary\PoyoLang.Dictionary.csproj", "{2D875AAD-BE17-4D15-A876-19DF1DCC57F5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PoyoLang.Test", "PoyoLang.Test\PoyoLang.Test.csproj", "{4CB193B2-44F2-4926-A56E-9A0CDCBC828C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PoyoLang.Dictionary.Generation", "PoyoLang.Dictionary.Generation\PoyoLang.Dictionary.Generation.csproj", "{43FFCEF2-A4AA-49A1-9731-CB6DAD9863F2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PoyoLang.Translator.SourceGenerator", "PoyoLang.Translator.SourceGenerator\PoyoLang.Translator.SourceGenerator.csproj", "{0411CE3E-B80E-4AC3-839F-307AD0A16774}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PoyoLang.Translator", "PoyoLang.Translator\PoyoLang.Translator.csproj", "{079808D0-16FB-4D01-A502-5366018312CB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PoyoLang.Translator.Web", "PoyoLang.Translator.Web\PoyoLang.Translator.Web.csproj", "{4620AA2D-D39E-4393-980C-E4DD25E624C3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -20,10 +20,6 @@ Global
{2D875AAD-BE17-4D15-A876-19DF1DCC57F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2D875AAD-BE17-4D15-A876-19DF1DCC57F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2D875AAD-BE17-4D15-A876-19DF1DCC57F5}.Release|Any CPU.Build.0 = Release|Any CPU
{4CB193B2-44F2-4926-A56E-9A0CDCBC828C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4CB193B2-44F2-4926-A56E-9A0CDCBC828C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4CB193B2-44F2-4926-A56E-9A0CDCBC828C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4CB193B2-44F2-4926-A56E-9A0CDCBC828C}.Release|Any CPU.Build.0 = Release|Any CPU
{43FFCEF2-A4AA-49A1-9731-CB6DAD9863F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{43FFCEF2-A4AA-49A1-9731-CB6DAD9863F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{43FFCEF2-A4AA-49A1-9731-CB6DAD9863F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -36,5 +32,9 @@ Global
{079808D0-16FB-4D01-A502-5366018312CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{079808D0-16FB-4D01-A502-5366018312CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{079808D0-16FB-4D01-A502-5366018312CB}.Release|Any CPU.Build.0 = Release|Any CPU
{4620AA2D-D39E-4393-980C-E4DD25E624C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4620AA2D-D39E-4393-980C-E4DD25E624C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4620AA2D-D39E-4393-980C-E4DD25E624C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4620AA2D-D39E-4393-980C-E4DD25E624C3}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

12
docker-publish.sh Normal file
View File

@@ -0,0 +1,12 @@
#!/bin/sh
version=$(grep -oPm1 "(?<=<Version>)[^<]+" PoyoLang.Translator.Web/PoyoLang.Translator.Web.csproj)
dotnet.exe publish PoyoLang.Translator.Web \
-c Release \
-r linux-x64 \
-p:PublishProfile=DefaultContainer \
-p:InvariantGlobalization=true \
-p:ContainerFamily=alpine \
-p:ContainerRegistry=git.ilysix.fr \
-p:ContainerRepository=Eveldee/PoyoLang \
-p:ContainerImageTags="\"latest;$version\""