// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT!
//
#nullable enable
namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0;
public interface II18nImports {
public static unsafe string Translate(string key, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.Locale locale)
{
var cleanups = new global::System.Collections.Generic.List();
var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(key);
var length = utf8Bytes.Length;
var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned);
var strPtr = gcHandle.AddrOfPinnedObject();
cleanups.Add(()=> gcHandle.Free());
var retArea = stackalloc uint[3];
var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4);
I18nImportsInterop.TranslateWasmInterop.wasmImportTranslate(strPtr.ToInt32(), length, (int)locale, ptr);
var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 4), 1)[0]);
if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) {
global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]);
}
foreach (var cleanup in cleanups)
{
cleanup();
}
return str;
}
public static unsafe void LoadTranslations(string @namespace, string json, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.Locale locale)
{
var cleanups = new global::System.Collections.Generic.List();
var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(@namespace);
var length = utf8Bytes.Length;
var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned);
var strPtr = gcHandle.AddrOfPinnedObject();
cleanups.Add(()=> gcHandle.Free());
var utf8Bytes1 = global::System.Text.Encoding.UTF8.GetBytes(json);
var length2 = utf8Bytes1.Length;
var gcHandle3 = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes1, global::System.Runtime.InteropServices.GCHandleType.Pinned);
var strPtr0 = gcHandle3.AddrOfPinnedObject();
cleanups.Add(()=> gcHandle3.Free());
I18nImportsInterop.LoadTranslationsWasmInterop.wasmImportLoadTranslations(strPtr.ToInt32(), length, strPtr0.ToInt32(), length2, (int)locale);
foreach (var cleanup in cleanups)
{
cleanup();
}
}
}