Herausfinden welche System-Sprache der Computer des Users/Landes hat.

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von slice.

    Herausfinden welche System-Sprache der Computer des Users/Landes hat.

    Ich versuche die Sprache des Users herauszufinden. Jedoch nicht die Installierte-Windows Sprache vom Computer sondern die Sprache vom Land des Users.
    Hab das hier gefunden

    Visual Basic-Quellcode

    1. System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.CultureName

    wo bei deutschen Usern das raus kommt: "de-DE". Diese Abkürzung reicht mir auch vollkommen aus nur
    weiß ich nicht ob das auch so bleibt wenn man ein fremdsprachiges PC benutzt wo eine andere Windows-Sprache installiert ist aber die Person noch in Deutschland ist.
    All meine Rechner sind deutsch-Sprachig kann es leider nicht testen, kennt sich jemand da aus mit System.Thread/CurrentCulture wodurch es die Sprach-Abkürzung ermittelt?

    Wenn es nach der Installierten-Sprache und nicht echtes Land ermittelt, was kann ich sonst noch so zusätzlich überprüfen lassen
    um die richtige Sprache des Landes herauszufinden (Außer WhoIs/IP Ermittlungen)

    Mfg
    Hi,
    du kannst entweder den Nutzer die Sprache wählen lassen oder du findest das Tastaturlayout (DE,EN etc) heraus:

    VB.NET-Quellcode

    1. Label1.Text = InputLanguage.CurrentInputLanguage.LayoutName


    Hoffe konnte helfen ;)

    Gruß

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „BradApfel“ ()

    Auf was für Ideen manche kommen ... woher soll der Computer wissen in welchem Land er sich befindet, geht nicht (außer er hat GPS). Die andere Frage die mir aufkommt: Welchen Sinn hat das? Ist doch egal wo der Computer ist, wichtig ist die Systemsprache ... ich wäre sehr verwundert wenn ich nach Russland/China/o.ä. reise und auf einmal das Programm in der jeweiligen Sprache arbeitet.
    @slice
    es ging um die Sprache des NUTZERS! Da ist das GPS-Tracking total sinnlos - Ja. Aber es ist die Wahl des Programmierers ob die Sprache automatisch oder manuell gesetzt wird.

    Edit:

    slice schrieb:

    Auf was für Ideen manche kommen ... woher soll der Computer wissen in welchem Land er sich befindet, geht nicht (außer er hat GPS).


    Falsch.


    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „BradApfel“ ()

    slice schrieb:

    Auf was für Ideen manche kommen ... woher soll der Computer wissen in welchem Land er sich befindet, geht nicht (außer er hat GPS).

    Naja.
    ich hatte schon vor 10-15 Jahren einen Dienst "WEB-GPS".
    Ein Tool du du genau sehen konntest, woher die Besucher auf deiner Webseite kommen.
    Damals sehr interessant und ein Riesen Erfolg für Business-Seiten, da sie so schauen konnten, ob eine Werbung die in Bayern geschalten wurde, nun auch mehr Leute von dort anlockten.
    Aber gerade die Leute mit Ihrer Privaten Homepage fanden das megga ineresant, aus welchen Städten oder Gegenden die meisten Leute kamen und so und ließen es sich sich ein paar Euro kosten.
    (Und das war LAAAANGE vor der Zeit von Google und Localosierungsdiensten).
    Das konnte in gewissen Grenzen bis hin zur Stadt auflösen.
    War damals sogar das einzige seiner Art. he he.
    Also.., das Land herauszubekommen ist ein Klacks.. Einfach anhand der IP-Adressse herausbekommen, über welchen Provider derjenige ins Netz kommt.
    und MEISTENS wird es einer sein, der in seiner Nähe ist.
    Kommt einer aus dem Netz der Telekom weist du auch gleich, das er sich aktuell wohl D aufhält. usw.

    Also.. Möglichkeiten gibt es da schon.
    @SEX Schon lange keinen dreckigen Einzeiler mehr geschrieben.
    string country = new Regex("<CountryName>(?<country>[A-z]+)").Match(new WebClient().DownloadString("http://freegeoip.net/xml/" + new Regex(@"(\d+\.\d+\.\d+\.\d+)").Match((new StreamReader(HttpWebRequest.Create(new Uri("http://www.wieistmeineip.de/")).GetResponse().GetResponseStream(), Encoding.UTF8).ReadToEnd())).Value)).Groups["country"].Value;

    ErfinderDesRades schrieb:

    Und wie soll sich das Programm verhalten, wenn ich mit meinem Laptop nach Amiland fliege?Insbesondere über dem Atlantik wirds knifflig

    Mir geht es nur um eine einmalige Überprüfung direkt beim 1.mal Öffnen soll er sich merken welche Sprache er benutzt, ob es das gleiche ist wie vom Land oder nicht.
    Von daher ist es mir egal wo er ist, sollte er sich woanders befinden (Urlaub,sonst wo) dann wird es ausnahmsweise die Sprache nehmen dass gleich mit der Tastaturlayout & System Thread CultureInfo ist. Bei nochmals unterschiedlicher Sprachen die Tastaturlayout, da es meistens das gleiche wie vom Land ist.
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    BradApfel schrieb:

    Hi, du kannst entweder den Nutzer die Sprache wählen lassen oder du findest das Tastaturlayout (DE,EN etc) heraus:VB.NET-Quellcode
    Label1.Text = InputLanguage.CurrentInputLanguage.LayoutName

    Hoffe konnte helfen Gruß

    Danke für die Idee, das wird mir genauso gut helfen.
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    LaMiy schrieb:

    @SEX Schon lange keinen dreckigen Einzeiler mehr geschrieben.
    string country = new Regex("<CountryName>(?<country>[A-z]+)").Match(new WebClient().DownloadString("http://freegeoip.net/xml/" + new Regex(@"(\d+\.\d+\.\d+\.\d+)").Match((new StreamReader(HttpWebRequest.Create(new Uri("http://www.wieistmeineip.de/")).GetResponse().GetResponseStream(), Encoding.UTF8).ReadToEnd())).Value)).Groups["country"].Value;

    Vielen Dank für die Mühe :)

    Hab versucht etwas in VB umzucoden, komme jedoch nicht mehr weiter. Die Online-Konverter schaffen es auch nicht aufgrund einpaar Fehlern...
    Wär nett wenn mir jemand mal Helfen könnte das hinzukriegen. Werde ich halt über die IP noch zusätzlich prüfen lassen ob die TastaturLayout- & das was ich schon hatte mit System.Thread Sprache mit dem Land übereinstimmt.

    Visual Basic-Quellcode

    1. Imports System.Text.RegularExpressions
    2. Imports System.IO
    3. Imports System.Net
    4. Imports System.Text
    5. Dim country As String
    6. country = New Regex("<CountryName>(?<country>[A-z]+)").Match(New WebClient().DownloadString("http://freegeoip.net/xml/" + new Regex("@(\d+\.\d+\.\d+\.\d+)").Match((new StreamReader(HttpWebRequest.Create(new Uri("http://www.wieistmeineip.de/")).GetResponse().GetResponseStream(), Encoding.UTF8).ReadToEnd())).Value)).Groups["country"].Value)

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „SEX“ ()

    @SEX Hier :)

    VB.NET-Quellcode

    1. Dim country As String
    2. country = New Regex("<CountryName>(?<country>[A-z]+)").Match(New WebClient().DownloadString("http://freegeoip.net/xml/" & New Regex("@(\d+\.\d+\.\d+\.\d+)").Match((New StreamReader(HttpWebRequest.Create(New Uri("http://www.wieistmeineip.de/")).GetResponse().GetResponseStream(), True).ReadToEnd())).Value)).Groups("country").Value
    3. MessageBox.Show(country)

    Wenn ich den Code nutzen würde, dann würde ich es kleinschrittig machen und die Async-Methoden nutzen.
    Außerdem den WebClient.Proxy auf Nothing setzten.

    Ich würde aber den User die Sprache wählen lassen. Kann ja auch sein, dass ein Deutscher das Programm lieber auf Englisch nutzen will.

    BradApfel schrieb:

    Hi,
    du kannst entweder den Nutzer die Sprache wählen lassen oder du findest das Tastaturlayout (DE,EN etc) heraus:

    VB.NET-Quellcode

    1. Label1.Text = InputLanguage.CurrentInputLanguage.LayoutName


    Hoffe konnte helfen ;)

    Gruß

    Es geht mir nicht um ein multi-sprachiges Programm. Hab damit was ganz anderes vor...
    Vielen Dank hast mir sehr geholfen :)
    Thema erledigt !!
    @RoulettePilot
    Mir ist durch aus bewusst das das auf die Weise Möglich ist, damit weiß der Computer alleine trotzdem nicht wo er ist. Ach und genau sehen kannst du das trotzdem nicht, du bekommst lediglich den Einstiegspunkt über den du ins Netz kommst raus und das muss nicht immer der sein der in deiner Nähe ist. Was machst du eig. wenn du kein Internet hast? Und noch als Anmerkung:

    SEX schrieb:

    [...] (Außer WhoIs/IP Ermittlungen) [...]


    @BradApfel
    er schrieb "um die richtige Sprache des Landes herauszufinden", von dem her bliebe keine andere Möglichkeit, denn er sagte noch "(Außer WhoIs/IP Ermittlungen)". Ach ja, einfach ein "Falsch" in den Raum werfen ohne näher zu erklären was falsch sei ist ein bisschen langweilig, vor allem wenn es sonst keine andere Möglichkeit für den Computer selbst gibt :)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „slice“ ()