public static string GetPluralString(string s, string p, int n) { IntPtr intPtr; IntPtr intPtr1; IntPtr intPtr2; string str; Catalog.MarshalStrings(s, out intPtr, p, out intPtr1, null, out intPtr2); try { IntPtr intPtr3 = Catalog.ngettext(intPtr, intPtr1, n); if (intPtr3 != intPtr) { str = (intPtr3 != intPtr1 ? UnixMarshal.PtrToStringUnix(intPtr3) : p); } else { str = s; } } finally { UnixMarshal.FreeHeap(intPtr); UnixMarshal.FreeHeap(intPtr1); } return(str); }
public static String GetPluralString(String s, String p, Int32 n) { IntPtr ints, intp, _ignore; MarshalStrings(s, out ints, p, out intp, null, out _ignore); try { // ngettext(3) returns an input pointer if no translation is found IntPtr r = ngettext(ints, intp, n); if (r == ints) { return(s); } if (r == intp) { return(p); } return(UnixMarshal.PtrToStringUnix(r)); } finally { UnixMarshal.FreeHeap(ints); UnixMarshal.FreeHeap(intp); } }
public static string GetString(string s) { string str; IntPtr heap = UnixMarshal.StringToHeap(s); try { IntPtr intPtr = Catalog.gettext(heap); str = (intPtr == heap ? s : UnixMarshal.PtrToStringUnix(intPtr)); } finally { UnixMarshal.FreeHeap(heap); } return(str); }
public static String GetString(String s) { IntPtr ints = UnixMarshal.StringToHeap(s); try { // gettext(3) returns the input pointer if no translation is found IntPtr r = gettext(ints); if (r != ints) { return(UnixMarshal.PtrToStringUnix(r)); } return(s); } finally { UnixMarshal.FreeHeap(ints); } }