<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="tr" lang="tr">
<head>
    <meta name="description" content="Türkçe Apache OpenOffice açık kaynak projesinin resmi ana sayfası, OpenOffice Writer, Calc, Impress, Draw ve Base uygulamalarının yurdu." />
    <meta name="keywords" content="OpenOffice Turkish, OpenOffice Türkçe, Open Office Türkçe, Türkçe OpenOffice, Apache OpenOffice Türkçe, Apache OpenOffice Turkish, Apache Open Office Türkçe, Türkçe OpenOffice.org, Calc, Impress, Draw, Base, ODF, Açık Belge Biçimi, ücretsiz ofis düzenleyicileri" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Apache OpenOffice Türkçe - Ücretsiz ve Açık Verimlilik Paketi</title>
    <script type="text/javascript" src="/download/globalvars.js"></script>
    <style type="text/css">
    /* <![CDATA[ */
    /*-------------------- Exceptions on standard css -----------------------*/
    @import "/css/home.css";
    @import "/css/styles.css";
    @import "/css/exceptions.css";
    /* ]]> */
    </style>
    <script>
      function follow( platform ) {
        // _gaq.push( ['_trackEvent', 'social', 'followUs', platform] );

        if ( platform == 'ApacheBlog' )
          window.open( "https://blogs.apache.org/OOo/", "_blank" );
        else if ( platform == 'Facebook' )
          window.open( "https://www.facebook.com/ApacheOO", "_blank" );
        else if ( platform == 'Twitter' )
          window.open( "https://twitter.com/ApacheOO", "_blank" );
        else if ( platform == 'YouTube' )
          window.open( "https://www.youtube.com/openoffice", "_blank" );
      }

      function showAlertbox( show ) {
	// More see "http://html-color-codes.info/"
        var l10n_alert_box_background_color = "#F5A9A9";
        // Make the whole alert box clickable with a link.
        var l10n_alert_box_href		    = "index.html";
	// Maximum 49 characters.
        var l10n_alert_box_headline_text    = "Headline text with max. 49 characters";
	// Maximum 630 characters.
        var l10n_alert_box_text_text	    = "Text with max. 630 characters."
					      + "<br /><br />"
					      + "This alert box is now within the layout of the list items below."
					      + "<br /><br />"
					      + "The following link can be added to point the user to more information or "
					      + "to a solution. But the link can also be left out. Then the link will not "
					      + "be shown.";
        // Show alert box or not?
        if( show ) {
          // If no background color value was set then use the default value.
          if( ! l10n_alert_box_background_color )
            var l10n_alert_box_background_color = "#FFD9A7";

          // Show alert box with defined background color.
          // Depending if link is available, make the whole DIV clickable or not.
          if( l10n_alert_box_href ) {
            // Show the text with link and cursor as pointer.
            document.write( "<div id='alert_box' style='background: " + l10n_alert_box_background_color
            + "; ' onclick='window.open(\"" + l10n_alert_box_href + "\", \"_blank\"); return false;'>" );

            // Show headline.
            document.write( "<h2 style='cursor: pointer;'>" + l10n_alert_box_headline_text + "</h2>" );

            // Show text.
            if( l10n_alert_box_text_text )
              document.write( "<p style='cursor: pointer;'>" + l10n_alert_box_text_text + "</p>" );

          } else {
            // Show the text without link and normal cursor.
            document.write( "<div id='alert_box' style='background: " + l10n_alert_box_background_color + "'>" );

            // Show headline.
            document.write( "<h2 style='cursor: default;'>" + l10n_alert_box_headline_text + "</h2>" );

            // Shoe text.
            if( l10n_alert_box_text_text )
              document.write( "<p style='cursor: default;'>" + l10n_alert_box_text_text + "</p>" );
          }

          document.write( "</div>" ); // Alert box
        }
      }
    </script>
</head>

<body>

<!-- The text in the H1 tag is intentionally shown as not displayable, just to please accessibility tools like a
screen reader.
-->
<h1 style="display: none;">Apache OpenOffice</h1>
	
<div id="actionstatements">
	
  <script type="text/javascript">
  <!--
  // Show alert box.
  // Change to 'true' if you want to show the text that is defined in the variables above.
  showAlertbox( false );
  //-->
  </script>
	
  <ul>
    <li>
      <hr />
    </li>
    <li>
      <div class="action-info">
        <div class="action-text action-link">
          <a href="/tr/why/index.html">
		    <h2>OpenOffice hakkında daha fazlasını öğrenmek istiyorum</h2>
            <p>Apache OpenOffice nedir? Ve neden kullanmalıyım?</p>
		  </a>
        </div>
      </div>
    </li>
    <li>
	  <hr />
    </li>
  </ul>

 <!-- Show the download link with currently available version number, loaded via JavaScript -->
  <script type="text/javascript">
  <!--
  document.write( "<ul><li>"
    + "<div class='action-download'>"
      + "<div class='action-text action-link'>"
        + "<a href='/tr/download/index.html'>"
          + "<h2>Apache OpenOffice'i indirmek istiyorum</h2>"
          + "<p style='font-size: 1.0em; font-weight: bold;'>(En son yayım: " + DL.VERSION + ")</p>"
          + "<p>Apache OpenOffice'i ücretsiz indirin <b>(gerçekten!)</b> | "
            + "<a href='https://blogs.apache.org/OOo/entry/with_apache_openoffice_you_get'"
              + "title='Blog yazısı: With Apache OpenOffice you get what you do not pay for' target='_blank'>"
              + "Daha fazla bilgi almak için buraya tıklayın"
            + "</a>."
          + "</p>"
        + "</a>"
      + "</div>"
    + "</div>"
  + "</li></ul>" );
  //-->
  </script>

  <!-- Show the download link, without version number -->
  <noscript>
    <div class="action-download">
      <div class="action-text action-link">
        <a href="download/index.html">
		  <h2>Apache OpenOffice'i indirmek istiyorum</h2>
          <p>Apache OpenOffice'i ücretsiz indirin ya da almak için diğer yolları bulun.</p>
        </a>
      </div>
    </div>
  </noscript>
		
  <ul>
    <li>
      <hr />
    </li>
    <li>
      <div class="action-help">
        <div class="action-text action-link">
          <a href="/tr/support/index.html">
		   <h2>OpenOffice'im ile ilgili yardıma ihtiyacım var</h2>
           <p>Yardıma ihtiyacınız olduğunda elinizin altında.</p>
          </a>
        </div>
      </div>
    </li>
    <li>
      <hr />
    </li>
    <li>
      <div class="action-extend">
        <div class="action-text action-link">
          <a href="/extensions/index.html">
		   <h2>OpenOffice'im ile birlikte daha fazlasını yapmak istiyorum</h2>
           <p>Ek işlevsellikler, şablonlar ve küçük resimler ile Apache OpenOffice'i genişletin.</p>
          </a>
        </div>
      </div>
    </li>
    <li>
      <hr />
    </li>
    <li>
      <div class="action-participate">
        <div class="action-text action-link">
          <a href="https://openoffice.apache.org/get-involved.html">
		   <h2>OpenOffice'e katılmak istiyorum</h2>
           <p>Apache OpenOffice, dünyanın her yerinden insanların yardımıyla yapıldı. Katkıda bulunmak için çekinmeyin!</p>
          </a>
        </div>
      </div>
    </li>
    <li>
      <hr />
    </li>
    <li>
      <div class="action-social">
        <div class="action-text action-link">
          <a href="/tr/social/index.html" onclick="javascript:follow('SocialLink');">
		  <h2>OpenOffice ile irtibatta kalmak istiyorum</h2>
          <p>Duyuru listemiz, sosyal medya alanları ve blog aracılığıyla OpenOffice'in ilerleyişini takip edin.</p>
			</a>
            <div class="action-social-extra">
              <p>
                <span style="padding:0 5px;cursor: pointer; cursor: hand;" onclick="javascript:follow('ApacheBlog');"
                title="OpenOffice Blogu"><img src="/images/logo-rss-16.png" alt="OpenOffice Blogu" />
                <a>Resmi Blog</a></span>
                <span style="padding:0 5px;cursor: pointer; cursor: hand;" onclick="javascript:follow('Facebook');"
                title="Bizi Facebook'ta Takip Edin"><img src="/images/logo-facebook-16.png" alt="Bizi Facebook'ta Takip Edin" />
                <a>Facebook</a></span>
                <span style="padding:0 5px;cursor: pointer; cursor: hand;" onclick="javascript:follow('Twitter');"
                title="Bizi Twitter'da Takip Edin"><img src="/images/logo-twitter-16.png" alt="Bizi Twitter'da Takip Edin" />
                <a>Twitter</a></span>
                <span style="padding: 0 5px; cursor: pointer;" onclick="javascript:follow('YouTube');"
                title="YouTube kanalımıza abone olun"><img src="/images/logo-youtube-16.png" alt="YouTube kanalımıza abone olun" />
                <a>YouTube</a></span>
            </p>
          </div>
        </div>
      </div>
    </li>
    <li>
      <hr />
    </li>
  </ul>
	
  <div id="SupportedAndSupporters">
    <a href="https://validator.w3.org/check?uri=referer"
    title="W3C Biçimleme Doğrulama Hizmeti - Web belgelerinin biçimlemesini (HTML, XHTML, ...) kontrol edin">
    <img src="https://www.w3.org/Icons/valid-xhtml10-blue.png"
    alt="W3C Biçimleme Doğrulama Hizmeti - Web belgelerinin biçimlemesini (HTML, XHTML, ...) kontrol edin"/></a>
  </div>
</div>

<div id="news">

 <div class="campaign">
    <h2>Son Blog Yazıları</h2>
      <p>
        Apache OpenOffice'in tüm blog yazıları, duyuruları ve haberleri <a href="https://blogs.apache.org/OOo/">burada</a></p>
  </div>

  <div id="all_news" style="height: 500px; float: left; overflow: auto;">
    <div class="campaign">
      <h2>Son Haberler</h2>

      <p style="text-align:right">
		 <a href="news/index.html">Haberler</a>
      </p>
      <p></p>

	  <h2>Apache OpenOffice 4.1.6 Türkçe sürümü yayımlandı</h2>

      <p><em>18 Kasım 2018:</em>
      Apache OpenOffice projesi <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-12"
      title="Apache OpenOffice 4.1.6 Sürümü">4.1.6 sürümünün resmi yayımını</a> duyurdu.
      <a href="https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.1.6+Release+Notes"
     title="Apache OpenOffice 4.1.6 Yayım Notları">Yayım Notlarında</a> tüm yeni hata düzeltmeleri, iyileştirmeler ve diller hakkındakileri
		  okuyabilirsiniz. Yeni yayımı <a href="https://www.openoffice.org/tr/download/index.html"
      title="Apache OpenOffice 4.1.6 Sürümünü İndirin">indirmeyi unutmayın</a>.</p>
    </div>		

	  <div class="campaign">			
	  <h2>Apache OpenOffice 4.1.5 Türkçe sürümü yayımlandı</h2>

      <p><em>30 Aralık 2017:</em>
      Apache OpenOffice projesi <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-11"
      title="Apache OpenOffice 4.1.5 Sürümü">4.1.5 sürümünün resmi yayımını</a> duyurdu.
      <a href="https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.1.5+Release+Notes"
     title="Apache OpenOffice 4.1.5 Yayım Notları">Yayım Notlarında</a> tüm yeni hata düzeltmeleri, iyileştirmeler ve diller hakkındakileri
		  okuyabilirsiniz. Yeni yayımı <a href="https://www.openoffice.org/tr/download/index.html"
      title="Apache OpenOffice 4.1.5 Sürümünü İndirin">indirmeyi unutmayın</a>.</p>
    </div>		

	  <div class="campaign">	
	  <h2>Apache OpenOffice 4.1.4 Türkçe sürümü yayımlandı</h2>

      <p><em>19 Ekim 2017:</em>
      Apache OpenOffice projesi <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-1"
      title="Apache OpenOffice 4.1.4 Sürümü">4.1.4 sürümünün resmi yayımını</a> duyurdu.
      <a href="https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.1.4+Release+Notes"
     title="Apache OpenOffice 4.1.4 Yayım Notları">Yayım Notlarında</a> tüm yeni hata düzeltmeleri, iyileştirmeler ve diller hakkındakileri
		  okuyabilirsiniz. Yeni yayımı <a href="https://www.openoffice.org/tr/download/index.html"
      title="Apache OpenOffice 4.1.4 Sürümünü İndirin">indirmeyi unutmayın</a>.</p>
    </div>		

	  <div class="campaign">		
	  <h2>Apache OpenOffice 4.1.3 Türkçe sürümü yayımlandı</h2>

      <p><em>12 Ekim 2016:</em>
      Apache OpenOffice projesi <a href="https://blogs.apache.org/OOo/entry/announcing_apache_openoffice_4_12"
      title="Apache OpenOffice 4.1.3 Sürümü">4.1.3 sürümünün resmi yayımını</a> duyurdu.
      <a href="https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.1.3+Release+Notes"
     title="Apache OpenOffice 4.1.3 Yayım Notları">Yayım Notlarında</a> tüm yeni hata düzeltmeleri, iyileştirmeler ve diller hakkındakileri
		  okuyabilirsiniz. Yeni yayımı <a href="https://www.openoffice.org/tr/download/index.html"
      title="Apache OpenOffice 4.1.3 Sürümünü İndirin">indirmeyi unutmayın</a>.</p>
    </div>		

	  <div class="campaign">		
	  <h2>Apache OpenOffice 4.1.2 Türkçe sürümü yayımlandı</h2>

      <p><em>28 Ekim 2015:</em>
      Apache OpenOffice projesi 4.1.2 sürümü resmi olarak yayımlandı.
      <a href="https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.1.2+Release+Notes"
     title="Apache OpenOffice 4.1.2 Yayım Notları">Yayım Notlarında</a> tüm yeni özellikleri, işlevleri ve dilleri hakkındakileri
		  okuyabilirsiniz. Yeni yayımı <a href="https://www.openoffice.org/tr/download/index.html"
      title="Apache OpenOffice 4.1.2 Sürümünü İndirin">indirmeyi unutmayın</a>.</p>
    </div>		

	  <div class="campaign">
      <h2>Apache OpenOffice 4.1.1 Türkçe sürümü yayımlandı</h2>

      <p><em>22 Ağustos 2014:</em>
      Apache OpenOffice projesi 4.1.1 sürümünün resmi yayımını duyurdu.
      <a href="https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.1.1+Release+Notes"
     title="Apache OpenOffice 4.1.1 Yayım Notları">Yayım Notlarında</a> tüm yeni özellikleri, işlevleri ve dilleri hakkındakileri
		  okuyabilirsiniz. Yeni yayımı <a href="https://www.openoffice.org/tr/download/index.html"
      title="Apache OpenOffice 4.1.1 Sürümünü İndirin">indirmeyi unutmayın</a>.</p>
    </div>		

	  <div class="campaign">
	    <h2>Apache OpenOffice 4.1.0 Türkçe sürümü yayımlandı</h2>

      <p><em>29 Nisan 2014:</em>
      Apache OpenOffice projesi
      <a href="https://blogs.apache.org/OOo/entry/the_apache_openoffice_project_announce"
      title="Apache OpenOffice 4.1.0 hakkındaki resmi blog yazısı">4.1.0 sürümünün resmi yayımını</a> duyurdu.
      <a href="https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.1+Release+Notes"
     title="Apache OpenOffice 4.1.0 Yayım Notları">Yayım Notlarında</a> tüm yeni özellikleri, işlevleri ve dilleri hakkındakileri
		  okuyabilirsiniz. Yeni yayımı <a href="https://www.openoffice.org/tr/download/"
      title="Apache OpenOffice 4.1.0 Sürümünü İndirin">indirmeyi unutmayın</a> ve kendi kendinize keşfedin.</p>
    </div>
	
  <div class="campaign">
    <h2>Apache OpenOffice 4.0.1 artık Türkçe olarak indirmeye hazır!</h2>

    <p><em>1 Ekim 2013:</em>
    Artık çıktı ve <a href="download/index.html" title="Apache OpenOffice'i Hemen İndirin!">indirmek için mevcut</a>.
    Hem de son sürümü artık Türkçe. Bu büyük özellikleri kapsayan bir yayındır, bu yüzden tüm gelişmeler ve yeni özellikler hakkında daha fazlasını öğrenmek için
    <a href="https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.0.1+Release+Notes"
    title="Apache OpenOffice 4.0 Yayın Notları">Özelliklere Genel Bakış</a> başlığı altında yayın notlarına bakmanızda fayda vardır.</p>
  </div>

  <div class="campaign">
    <h2>Gönüllüler, Amatörler değil</h2>

    <p><em>8 Ocak 2013:</em>
    Apache OpenOffice %100 gönüllüler tarafından geliştirildi.  Apache, geliştiriciler, çevirmenler, pazarlama, KA,
	destek, vs. için ödeme yapmıyor. Elbette, sunucularımızı çalışır tutmak ve benzer genel giderler için
    <a href="https://www.apache.org/foundation/contributing.html">Apache Yazılım Kuruluşu'na bağışları</a>
	kabul etmekten mutluluk duyarız. Fakat ürünlerimiz bütünüyle gönüllüler tarafından geliştirilir.

    <p>Bazı kullanıcılar şu ifadeyle başta endişeleniyorlar:<br /><strong>Yazılım nasıl ücretsiz olur, gönüllüler tarafından geliştirilir?
    <br /></strong><a href="why/why_volunteers.html">Yanıtını okuyun...</a></p>
  </div>

  </div>

</div>

<!-- Every new element and text that is defined below the previous DIV will be actually displayed wrapped below this DIV
(because of "clear: both" instead of floated around the previous DIVs. This is really needed. -->

<div style="clear: both;"></div>

</body>
</html>
